There is a strange problem I am facing, if any of you might have seen before.
I have freshly install OS (Windows 2003 SP2) and just have configured IIS on it and on the default site,the static content say hello.htm is working fine.But any dynamic content like hello.asp (classic asp) or hello.aspx (asp.net) is not working.
If I telnet and issue HTTP headers manually for static content it works but for dynamic content IIS is basically forcefully closing the connection.
There's nothing in event logs.
Any clues?
Stupid question, but do you have ASP.Net enabled in add/remove programs in and IIS itself? I don't think that would cause it to close the connection, but it is a common "gotcha" along with registering ASP.Net.
Look under Web Service Extensions in IIS.
Is ASP.NET marked "enabled"? Do you see it? If not, do a aspnet_regiis -i from your %windir%\Microsoft.NET\Framework\WHATEVERVERSION\ directory on the command line, and you will.
Then re-check Web Service Extensions and make sure it is enabled.
Related
What happens?
I publish a website to UnoEuro on a windows server.
When I do I keep getting the error message:
"HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid."
What have I set up/tried?
What I've done is that I've created a .NET Core 2.1 Web API which hosts fine locally on my computer using IIS. I have then published the web api to the hosting site UnoEuro where I can see that the files are uploaded as they should be.
I asked the hosting sites support, they told me to just ensure that it was deployed as self-contained but that otherwise they could not help further. It looks like there is a hosting issue of some sort related to that it cannot seem to find the webconfig file. At least that's what the error message says.
Is there any form of setup I should make? A configuration I should change? Should I set up some SSL settings in the web API which I might have missed? When I started the project I told it to enforce HTTPS, but surely I should get another error message if that was the fault?
I've tried publishing with the target runtime set to both x64 and x86.
I've never published an API like this to anything but Azure before, so I might be doing a thing or two wrong but I cannot see what it should be? I have Googled around but not found anything that seems relevant which has worked.
Most of the solutions seem related to changing the server environment which I don't have so much control over, I mostly just have control over the application/web api, at least that's what it looks like to me.
Hope you have any suggestions, I'm all eyes n ears.
Side question: Should I use IIS Manager for this? I'm currently publishing through Visual Studio 2017.
Images for further understanding
Publishing settings
Deployed/published files
Error message I get
EDIT:
I tried moving the files to /public_html on the same domain as ISS Manager seemed to indicate it expected the config file to be there.
That then resulted in a different error message as you see below.
Link from error message: https://go.microsoft.com/fwlink/?LinkID=808681
It's hard to say exactly, but I think the issue is that the ASP.NET Core hosting bundle is not installed on the server. There's two pieces to hosting in IIS. First, you need the .NET Core runtime, and then you need the ASP.NET Core hosting module for IIS. Deploying as self-contained buys you the runtime, but not the hosting module in IIS. There's non-standard sections in the Web.config created by publishing an ASP.NET Core app. The hosting module shims in support in IIS for these config sections (among other things). Therefore, the config error seems to imply that this is not happening.
If you don't control the server, there's not much you can do about it. Honestly, at this point, I wouldn't host anywhere where you do not at least have some measure of control over the environment. You can get a full VPS from numerous hosting services for $5 or less a month. Either continue hosting in Azure, or look into other respected cloud providers like DigitalOcean, AWS, etc.
I have a Asp.Net Core MVC application running on Windows Server 2008 R2 with IIS. But every time I update this application, I need to manually stop the applicationPool in IIS, and restart the applicationPool after I finish updating the app. Otherwise it will tel me "the xxx.dll is in use by other progress".
Is there any way to make this process easier?
A workaround For Windows with no down time and I am regularly using is:
Rename running .NET core application dll to filename.dll.backup
Upload the new .dll (web application is available and serving the requests while file is being uploaded)
Once upload is complete recycle the Application Pool. Either Requires RDP Access to server or function to recycle application pool in your hosting control panel.
IIS overlaps the app pool when recycling so there usually isn’t any downtime during a recycle. So requests still come in without every knowing the app pool has been recycled and the requests are served seamlessly with no downtime.
I am still searching for more better method than this..!! :)
January 2022 - for Linux
For Linux, we use Openresty nginx with Lua script to hold (sleep) incoming requests for few seconds until the service running .NET Core or .NET 5 or .Net 6 application restarts and then we release the threads we had hold.
Refer: https://github.com/basecamp/intermission
Finally I found my anwser:
I just need add a file named app_offline.htm to the IIS web root(not your project wwwroot folder), and remove it after you replace all of your file.
due to this issue you may need try both App_Offline.htm or app_offline.htm .
and this will allow you to use FTP client to update
Opening the web.config file in an editor and saving it will cause the web application to reload, even if you don't change anything. All DLLs should be replaceable, until a user hits the site, causing the web application to start again. I sometimes use that as a workaround.
A more full fledged solution would be to use Web Deploy, either through Visual Studio or by command line. This can take a litte while to set up, but offers more automation.
https://learn.microsoft.com/en-us/aspnet/core/publishing/iis#deploy-the-application-1
There is no way to hotswap in place DLL's.
Your best bet is to deploy to a new folder each time (For example a versioned folder), and change the website directory in IIS once you have fully copied your website onto the server.
I'm in the process of setting up my first ASP.NET vNext web application project.
I've got as far as getting the default project to build and run fine in both Windows and OSX. I've tested with kestrel on the mac, and in Windows IIS Express along with kestrel.
The problem I have encountered is that in Windows, editing a cshtml View file while the web server is running isn't reflected when I next refresh the browser.
In OSX, I can run 'dnx web' and navigate to localhost:5000 and browse the site. I can then edit the .cshtml View files, switch back to the browser, hit refresh, and I can see all the changes. This is what I expect to happen and happened in previous versions.*
In Windows, I can either run dnx web or IIS Express on the same site as I was using on OSX, navigate to localhost:5000 (or for IIS Express its own port number) and browse the site. I then switch to edit the cshtml View files, but when I switch back to the browser to reset, the changes aren't shown. It's not until I restart kestrel or IIS express that the changes are shown.
Curiously, however, I can edit a .cs Controller file and the site then recompiles by itself and I don't need to re-start it - in Windows at least. (In OSX, editing a controller file doesn't cause an auto-recompile, but that's an aside, I believe dnx-watch will fix that).
Is there something that I've missed in the project.json, or another setup file, which is causing the issue in Windows?
I have tried:
creating a second completely clean web application project
reinstalling ASP.NET
desperately, lastly, creating a clean install of Windows 10 with Visual Studio 2015 Community Edition, to no avail
What's the way to get Kestrel or IIS Express in Windows to serve the updated cshtml View file after it's been edited, without restarting the server?
*side note, ASP.NET MVC in OSX is awesome!
Following on from #SRQ Coder's response, in particular the reassurance that it's supposed to work as I hoped, I found the reason but as yet no decent solution.
My project directory is located on a network share and I load the projects directly from there (I run Parallels Desktop on a mac). This works great with ASP.NET 4.x / MVC 5 (and earlier). However it looks like ASP.NET 5 doesn't support this setup.
The moment I copied the project folder to the local C: drive it all worked fine
When opening the project from a \\network-share, the project loads and I can run/debug the website, but CSHTML edits aren't shown in browser until IIS Express/Kestrel is restarted
Opening the project from a X:\ mapped network drive doesn't make any difference
I'm not able to recreate your problem on my machine: VS2015; Win10 etc. in either the IIS mode or Web: localhost/5000 mode and on multiple browsers.
I can edit both 'shared' cshtml files like '_Layout' and also the default 'home/index cshtml file with no problem.
Since you've re-installed so much of your system, I'm wondering if you have not re-installed web-essentials and enabled 'browser link'.
I feel your pain...
I just created a WCF Service Application in VS2013 with framework 3.5. for exposing some methods I have in a class library project.
Everything went fine but when I tried to see if the service runs, it doesn't. Instead I got the next error.
HTTP Error 404.17 - Not Found The requested content appears to be
script and will not be served by the static file handler.
Most likely causes: The request matched a wildcard mime map. The
request is mapped to the static file handler. If there were different
pre-conditions, the request will map to a different handler.
Things you can try: If you want to serve this content as a static
file, add an explicit MIME map.
I have dealt with it on IIS, but now in IIS Expres I'm kinda lost.
I don't have IIS installed on this machine since I'm using a remote one, but I need to debug some things and I'm stuck. Thanks for any help.
I also did run servicesmodelreg -i with visual command prompt, but error persists.
UPDATE
It may be usefull to clarfy it only happens in IIS Express so it is impacting development. I have VS2013 updated to the latest patch running on Win 8.1 64bit
Try to run "C:\Program Files\IIS Express>Wscript.exe WCF35Setup.js install" that is a script for enabling WCF 3.5 service on IIS Express.
Reference : http://www.iis.net/learn/extensions/introduction-to-iis-express/iis-75-express-readme
Seems WCF mapping are not registered with IIS.
To solve the above error:
Navigate to "
%SYSTEMROOT%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation
" at the Visual Studio command prompt.
Execute "servicemodelreg -i" to install the mappings manually.
For more details refer :ServiceModel Registration Tool (ServiceModelReg.exe) on MSDN.
-
Alternatively,
enable HTTP Activation for WCF services in Windows features.
Click the Start button, and then click Control Panel.
Click Programs, and then click Programs and Features.
On the Tasks menu, click Turn Windows features on or off.
Select the WCF Non-Http Activation Components box and save the
setting.
Source :
http://msdn.microsoft.com/en-us/library/ms732012(v=vs.110).aspx
After trying all the recommended solutions suggested here up to this point:
servicemodelreg -i
Wscript.exe WCF35Setup.js install
enable HTTP Activation
And a few others suggested elsewhere:
Run Visual Studio as Admin
Use "Local IIS" instead of IIS Express
I finally determined what my issue was. The WCF code was targeting .NET framework 3.0, and I had not enabled IIS support for 3.0/3.5!
The solution was simple. Enable ".NET Extensibilty 3.5 and ASP.NET 3.5".
I know I've had this problem when I started working with Silverlight, but I can't for the life of me remember how to fix it.
I created a new RIA service application using the standard tutorial, added a table from the database and added a grid to display the results. Works great. Now I pull open the Web properties and change the web project to "use local IIS Web server". Suddenly the application will load up and give me the friendly "NotFound" error.
Please, someone remind me what I'm missing here.
I ran into this problem recently, and resolved it with help from this post on the silverlight.net forums.
Basically, I had Windows authentication and annonymous access enabled at the same time, and I need to disable windows authentication and restart IIS.
John
Not sure what the missing part is but I always start with Fiddler as will show the messages going across the wire. The actual messages can contains far more useful that the browser is hiding from the Silverlight plugin