While testing my Razor/asp.net web site, I continually find a file named "app_offline.htm" in my Recycle Bin. Is this something that will plague the poor unsuspecting visitor to my site?
It won't be the case while you publish your site. Reason is:
SQL Server 2005 express edition does not support multiple processes. Only single process can access database at a time. So when a database is accessed through visual studio, ASP.net runtime cannot access the database. This will result into the internal server error. To prevent this, VS 2005 places app_offline.htm file in the application's root directory. The file contain above message. This causes ASP.net to put the application in offline mode.
source: http://www.codeproject.com/Articles/21319/Putting-ASP-net-Application-In-Offline-Mode-Using
In my ASP.NET application I have ftpdata folder, there is an MS Access 2010 file e.g. somename.accdb.
On my local computer (Win XP), there is no problem to connect with OleDb to this file and read write datas into and from tables.
But on server (Windows Server 2008), I cannot connect to the same file like on localhost.
Can you help me, please, where problem could be?
Finally, I found solution of problem.
There was not installed 2010 Data Connectivity Components on the server.
The windows user that your application pool is running in does probably not have read access to the directory/file
You need either direct access through the file system or SMB networking access (via a share defined on the server). If the FTP folder has an SMB share name, use that to get to it, but it's likely not shared (since it's purpose is for FTP access, not SMB access).
Installing the 2010 Data Connectivity Drivers does not seem to work, what worked for me was to set the corresponding website application pool in IIS to enable 32-Bit applications.
Official Microsoft Reference:
I am running windows server with asp.net websites and sql server 2008 and IIS 6. It is working fine.
Now I need to move my asp.net websites to another windows server and I have hard time setting correct file security for the new server.
Is there any way to compare or move or see difference file security between two servers?
Nice question, I have never think to do something like that :)
Use AccessEnum tool from sysinternals
http://technet.microsoft.com/en-us/sysinternals/bb897332.aspx
to see and compare your security access on your files and directories.
I wanted to run a .net application on a laptop. I created the application(aspx pages and SQL database) on a computer that has VS 08 installed. Now i wanted to run this application on a laptop that does not have SQL sever 2005 installed.
As far as the aspx pages if i publish them to a zip drive copy it to my laptop and go into IIS and define a new virtual directory to point where my pages are that should work RIGHT??
Now for the database i don't know what i need to do
any ideas???
Publish the web app to a folder on the laptop and create an IIS Virtual directory pointing to that folder.
As for the DB, install an express version of SQL Server (http://www.microsoft.com/express/Database/) and
point you web app at them.
Have you considered using SQL Server Compact Edition? This will allow you to move the db around with the application.
You need to install sql server on the client(laptop) so you can run the application properly
As far as the aspx pages if i publish
them to a zip drive copy it to my
laptop and go into IIS and define a
new virtual directory to point where
my pages are that should work RIGHT??
Yes this should work.
As for the database, you'll need to install it on the computer you are running IIS on and copy the schema and data over or (I would recommend this way) have your code connect to a server which has the database on it.
You need to install at a minimum SQL Server 2005 express edition. You may also need to change the connection settings for your application, which may be in your .config file(depending on how you did your conneciton in your application) and depending on whether the server instance and database name you choose are different from what you used on your development computer.
Currently our dev team set up all the websites they're working on in IIS on their local machine. We're thinking of switching to using the built in ASP.NET development server instead.
Is this a good idea? What are the pros / cons of using the ASP.NET dev Server? Are there any gotchas we should be aware of?
Thanks.
NB: Running on Win XP / IIS 5 / VS2005
Edit:
Didn't realise it was called Cassini.. More answers for Cassini v IIS here.
There is nothing that the ASP.NET Dev WebService can do that IIS can't (You can set breakpoints etc, just attach the VS debugger to the ASP.NET runtime).
However, the ASP.NET Dev WebService does not represent a true production environment, and as such you can get caught by gotchas that you wouldn't expect when you deploy to production.
Because of that, I mandate that all development is done using IIS on a local machine. It doesn't take much work to configure a site in IIS.
It's a very good idea. Here are some reasons for:
You no longer need admin access to your machine for web development (it can still be helpful).
It's much easier to test a quick change and continue work, and faster iteration cycles are good.
It can simplify setup and deployment of your development environments.
The XP version of IIS has limitation that are not present in the Server version that Cassini side-steps.
The only argument I know against is that there are a couple very rare edge cases where the Cassini built-in server doesn't exactly mimic IIS because you're using odd port numbers. I doubt you'll ever run into them, and using Cassini as the primary dev environment does not preclude developers from also having access to IIS on the machine. In fact, my preferred setup is Cassini first for most small work, then deploy to my local IIS for more in-depth testing before moving code back to the shared source repository.
[Edit]
Forgot about url re-writing. You do need IIS for that. And an example of a limitation of the built-in XP IIS is that you are limited to one site in XP (can have multiple applications, but that's a different thing).
I had to switch (back) to IIS for one project, because I needed to set some virtual directories which is not possible on the ASP.NET Development Web Server.
As I stated here: https://stackoverflow.com/questions/103785/what-are-the-disadvantages-of-using-cassini-instead-of-iis your developers need to be aware that Cassini runs as the local user, which is typically an admin account for developers. The development will be able to access any file or resource that their account can, which is quite different from what they will see on an IIS 6 server.
The other thing that's a pretty big gotcha is debugging web services is much easier using IIS and vdirs rather than separate Cassini instances.
I know at one point I had an issue with Authentication not working as expected on Cassini (built in development server)
Also, if you need to test things like ISAPI plugins (a re-writer for example) I'm not sure how that's done on Cassini.
The constantly changing port is also rather disconcerting to me. Also, for each web project in your solution it fires up another instance of a Casini server, and each one takes anywhere from 20 to 50 MB of memory.
I use IIS all the time, it's pretty easy to setup, and you guys are already doing that...
I've used both methods and I prefer having IIS locally vs. using the built-in server. At very least you're more consistent with the final deployment setup.
Also, when using IIS 5.1, be sure to get JetStat IIS Admin, it adds functionality that is disabled out of the box on IIS 5, such as being able to setup multiple sites.
I have run into the following limitations with the asp.net dev server:
does not support virtual dirs. If you need them in your app, IIS seems to be your only choice
Classic asp pages dont run in dev server. So if you have a mixed web app (like I have at my client right now), IIS seems to be the solution
If you need an admin UI to configure settings, IIS works better
Of course IIS requires that you be a local admin.
Another distinction I noticed is that Cassini runs as a 32-bit process and you have no control over it, whereas you can control the application pool of your IIS app to disallow 32-bit (assuming your IIS is running on a 64-bit server). This becomes especially important if your web application is going to call APIs in 64-bit processes such as SharePoint Foundation/Server 2010. When you debug your web app with Cassini as your debug server, you'll get "The Web application at url could not be found. Verify that you have typed the URL correctly" type errors when instantiating objects. If you debug using IIS with the app running in an app pool that runs as 64-bit with an identity that allows access to sharepoint database then you'll be able to debug properly.
In VS12 the development server is way slow, takes a few seconds to download a 2kbyte file. This did not happen in vs10. When you have a bunch of jquery files and css this is a real problem. Also every page requeries all the css/js files. Very very slow regression testing.
The main issue I've run into with the dev server is SerializationExceptions with custom security principals stored on the thread context. Details here.