IIS 8.5 Serving Old Files - asp.net

I have a clickonce application on Windows Server 2012 IIS 8.5. I recently updated it to a new version and it works fine, except for one url used by a second web page to link to it. It links directly to the .application file and when I use that link I get version 2.1.0.10 of that file instead of the one that is one the server version 3.1.0.1.
It's only when using the that link, other url's server the correct file. I've even stopped the website on both servers (load balanced) and the link still somehow downloads the old file.
I have cache and kernel cache turned off under Output Cache Settings in IIS, I have Common HTTP Response Headers set to Expire Web Content immediately, but it's still serving up and old file even though it doesn't exist anymore. I have a url rewrite rule for that specific url to redirect to one that works and still I download an old file.
I've restarted IIS and the servers themselves and nothing has changed. I then tried copying the files to a new folder and creating a new site in IIS. I copied over the bindings and stopped the old site and app pool. Still get served the old file.
Can anyone help me figure out what's going on with the IIS? How is it serving up a file that doesn't exist, even when the website is stopped? How can I get it to update?

I had the same issue and tried everything mentioned here (and elsewhere!), and finally found out that the reason was the IIS Compression cache!
On the IIS console, click on the website and then on the Compression, and uncheck the Enable static content compression.
This should solve the problem.

If the web server has been stopped, it is possible that this file may be 'served' from your browser's cache.
Have you tried clearing your browser's cache? If this doesn't work, it might be worth restarting the IIS service completely, or, failing that, moving the website's wwwroot directory elsewhere, and redeploying the latest version of your site, or simply renaming the .application file and re-deploying?
This would be akin to cleaning and re-building a project in Visual Studio.

This was eventually found to be caused by a setting on the load balancer caching results. We turned off this setting and now no longer have the issue.

Related

How do I find where a redirect is occurring on my website

We're moving an instance of a third party, .NET-based website to a Win2016 server, IIS 8, from an external hosting service. Under the site, there's a WCF web service in a subfolder. There are no virtual directories or apps.
mysite.../Order/v4/service.svc
When I browse to pull the wsdl (https://MySite.../Order/v4/Service.svc?wsdl ), it is redirecting to Login.aspx (https://MySite.../Order/v4/Login.aspx).
Browsing to https://MySite/Order/v4/Service.svc?wsdl redirects to https://MySite/Order/v4/Login.aspx .
IIS has no default document set / web.config's defaultDocument is commented out.
Vendor indicates
That would be a redirect that was setup either on IIS or another
appliance that is doing that.
Same behavior occurs running on the server itself (localhost) and sys eng confirms it shouldn't be leaving the network to hit any firewall.
There are no other .config files on the server with any reference to "Login.aspx".
This still feels like it is some piece of configuration but even doing things I shouldn't need to do like restarting the server just to make sure no caching of settings is hanging around isn't affecting it.
Any guesses on what might be attempting to redirect?
Following Rich-Lang's suggestion in comments provided the information to identify that the global.asax file was handling an error in the web.config. Since the code in this case was in codebehind in a dll, and the vendor indicated their code does not redirect, I had not seen that culprit before. Removing the global.asax and turning off customErrors allowed me to see the underlying issue.

Deploying a Web Site project did not work

I was Working through Microsoft's example on Deploying a Web Site Project. As the example suggested, I used the tool to place the compiled website in a local directory, and then creating a virtual directory in IIS and pointing it to that directory. Then I converted the virtual directory to an application. I tried browsing to the local website (http://localhost/TestSite03/SamplePage.aspx) but got an error that it could not access the config file due to permissions. I read this post and decided that I should add IIS_IUSRS to the site. I did this by right clicking on TestSite03 in IIS Manager and choosing "Edit Permissions". After that it just stopped working. The browser would spin when I went to the site, and eventually display a 'page not available' page. Same thing when I go to http://localhost now also. I tried removing the application, but localhost is still not working. I did look at other values while I was trying to get the TestSite03 working, but I don't think I made any other changes. Anyone know what I might have done wrong here?
Things I tried for localhost not working:
Reordering the default page configuration.
Restoring the default page order to inherited value.
Adding a default.htm page.
Making the directory browsable.
Restarting the Default Web Site
Rebooting the computer
Checking permissions
-
Possibly Relevant info:
Windows 10,
Visual Studio 2013
.Net Framework 3.5 used for the test site
Chrome and edge browsers.

Changes to website not reflected when viewed

I have a silver light application accessed through an ASP.NET website. I edited the code behind .cs code file of one page to solve a bug and deployed the file by copying and replacing the old file.
Now the issue is, if browser to site through
http://my-server-name/MyWebSite/, i see the changes are applied but if i browse through
http://my-server-name.mydomain.subdomain.mycompany.org/MyWebSite/
the changes are not reflected. Does any one know what causes such behavior.
I have tried restarting the Application pool in IIS and also refreshing the website in IIS but with no luck.
Please try refreshing the client browser cache as the silverlight application might be cached on the client side when you have accessed the previous version through the second url before.

Exchange OWA stopped working after installing Tomcat

I have a window 2003 server running exchange 2003 on IIS 6. Everything worked until I installed Tomcat/Railo on the server.
After the Tomcat install I am unable to reach the exchange server on the OWA. I understand that Tomcat is processing the servlets for railo but I am not sure how it is effecting OWA and how to fix it.
Since this has been running so long I am not sure where the files are to reinstall OWA are.
When I hit the exchange OWA site it does ask me to login but then IIS give me a 404 error
I obviously need to get this up and running since every in the company uses the OWA help!
Added info:
I have added a new virtual directory to the default website that contains an image. I can hit this with no problem so it appears that what is no longer working are the virutal directories originally added by the install.
/exchadmin \\.\backofficeStorage
/exchange \\.\backofficeStaorage
/exchweb C:\Program Files\Exchsrvr\ExchWeb
etc
These also appear to be ASP.NET related pages. Is it possible that installing railo/Tomcat messed up the asp processing for this site?
I suspect that both IIS and Tomcat are trying to listen on Port 80, only one can bind at a time. If you look in IIS you may find your default website is stopped.
#Gavin Totall put me on the right track for this. What ever happened during the Tomcat install hosed all of the application pool settings for the default site I found this page
http://support.microsoft.com/?id=883380
on how to reset all the default OWA virtual directorys and everything started working again. Hopefully this post will save someone the hours I spent on this. Thanks again #Gavin

ASP.NET 2.0 - How to use app_offline.htm

I've read about the app_offline.htm file which can be placed within the root of a .NET 2.0 application which will in essence shut down the application and disable any other pages from being requested.
I've placed the file in the root, and my site still loads. I went into default documents in IIS and set it to app_offline.htm and the site still loads (this might have been a caching issue though)
Anyway, has anyone run into issues using this? Am I doing something wrong?
I have used the extremely handy app_offline.htm trick to shut down/update sites in the past without any issues.
Be sure that you are actually placing the "app_offline.htm" file in the "root" of the website that you have configured within IIS.
Also ensure that the file is named exactly as it should be: app_offline.htm
Other than that, there should be no other changes to IIS that you should need to make since the processing of this file (with this specific name) is handled by the ASP.NET runtime rather than IIS itself (for IIS v6).
Be aware, however, that although placing this file in the root of your site will force the application to "shut down" and display the content of the "app_offline.htm" file itself, any existing requests will still get the real website served up to them. Only new requests will get the app_offline.htm content.
If you're still having issues, try the following links for further info:
Scott Gu's App_Offline.htm
App_Offline.htm and working around the "IE Friendly Errors" feature
Will app_offline.htm stop current requests or just new requests?
Make sure your app_offline.htm file is at least 512 bytes long. A zero-byte app_offline.htm will have no effect.
UPDATE: Newer versions of ASP.NET/IIS may behave better than when I first wrote this.
UPDATE 2: If you are using ASP.NET MVC, add the following to web.config:
<?xml version="1.0"?>
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
Note that this behaves the same on IIS 6 and 7.x, and .NET 2, 3, and 4.x.
Also note that when app_offline.htm is present, IIS will return this http status code:
HTTP/1.1 503 Service Unavailable
This is all by design. This allows your load balancer (or whatever) to see that the server is off line.
Possible Permission Issue
I know this post is fairly old, but I ran into a similar issue and my file was spelled correctly.
I originally created the app_offline.htm file in another location and then moved it to the root of my application. Because of my setup I then had a permissions issue.
The website acted as if it was not there. Creating the file within the root directory instead of moving it, fixed my problem. (Or you could just fix the permission in properties->security)
Hope it helps someone.
Make sure that app_offline.htm is in the root of the virtual directory or website in IIS.
Make sure filename extensions are visible in explorer and filename is actually
app_offline.htm
not
app_offline.htm.htm
I ran into an issue very similar to the original question that took me a little while to resolve.
Just incase anyone else is working on an MVC application and finds their way into this thread, make sure that you have a wildcard mapping to the appropriate .Net aspnet_isapi.dll defined. As soon as I did this, my app_offline.htm started behaving as expected.
IIS 6 Configuration Steps
On IIS Application Properties, select virtual Directory tab.
Under Application Settings, click the Configuration button.
Under Wildcard application maps, click the Insert button.
Enter C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll, click OK.

Resources