New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discussion for Publishing to IIS updates for RC2 #1140

Closed
guardrex opened this Issue Apr 7, 2016 · 26 comments

Comments

Projects
None yet
6 participants
@guardrex
Collaborator

guardrex commented Apr 7, 2016

@danroth27 @Rick-Anderson

I created a branch to demo some suggestions for Publishing to IIS at

https://github.com/GuardRex/Docs/blob/master/aspnet/publishing/iis.rst

The highlights thus far in just playing with the doc are:

  1. Order of presentation a bit more inline with the process one would follow
  2. Expanded IIS setup for IIS Local with a screenshot
  3. Fixed a few minor grammar issues
  4. Removed content on unlocking handlers section of web.config for websites
  5. List the supported OS's explicitly and made a note to hit the Nano doc for that server
  6. Updated references to ASP.NET 5 to ASP.NET Core
  7. Updated references to the HTTPPlatformHandler to the AspNetCoreModule
  8. Added step for installing the .NET Core Shared Framework
  9. Updates to the deployment instructions, including new screenshots

Other issues:

  1. The current version attempts to cover both the shared framework and standalone app hosting models. I haven't played with the shared approach here (yet). Apparently, the .NET Core Installer should be run on the server to install the shared framework because merely installing v0.8 of the AspNetCoreModule didn't give me an install of the shared framework when I installed it. If I went wrong on that step, let me know.
  2. IIS Local: I think it works based on some troubleshooting I did with a dev on JabbR. I want to set it up here my local machine and confirm that all is well. I'll ping back on this.
  3. Troubleshooting section: I want to reverse-engineer the 💥 exceptions 💥 by loading up a test app and manually breaking it to confirm the behaviors described. I pitched to @Rick-Anderson a couple of weeks ago that I would try this approach, but I was slowed down on it by (a) moving to Pensacola (if anyone wants a .NET Core dev ... "Have .NET Core, Will travel!" ... please CALL ME!), (b) there was a lot of churn in hosting and IIS integration, so its just as well that I was delayed. I'll ping back soon on this.
  4. I think the Additional Resources section could use a few more links. Let me see if anything else would be relevant.
@Rick-Anderson

This comment has been minimized.

Show comment
Hide comment
@Rick-Anderson

Rick-Anderson Apr 7, 2016

Contributor

@guardrex looks great to me.

Contributor

Rick-Anderson commented Apr 7, 2016

@guardrex looks great to me.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 7, 2016

Collaborator

Thanks ... I'm pushing forward tonight with it, and I'll ping u back when I
get those last few items addressed.
On Apr 7, 2016 3:08 PM, "Rick Anderson" notifications@github.com wrote:

@guardrex https://github.com/GuardRex looks great to me.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#1140 (comment)

Collaborator

guardrex commented Apr 7, 2016

Thanks ... I'm pushing forward tonight with it, and I'll ping u back when I
get those last few items addressed.
On Apr 7, 2016 3:08 PM, "Rick Anderson" notifications@github.com wrote:

@guardrex https://github.com/GuardRex looks great to me.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#1140 (comment)

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 8, 2016

Collaborator

@Rick-Anderson Update: Slowed down a bit on testing with the shared framework ... dotnet/cli#2362

I'm going to wait until I hear back from them, then I'll proceed with this.

Collaborator

guardrex commented Apr 8, 2016

@Rick-Anderson Update: Slowed down a bit on testing with the shared framework ... dotnet/cli#2362

I'm going to wait until I hear back from them, then I'll proceed with this.

@danroth27

This comment has been minimized.

Show comment
Hide comment
@danroth27
Member

danroth27 commented Apr 8, 2016

@danroth27

This comment has been minimized.

Show comment
Hide comment
@danroth27

danroth27 Apr 8, 2016

Member

@guardrex Please base these changes on the dev branch - that's were we doing all of the RC2 updates.

Also, the plan is that using the "shared framework" is the default application model, so you can just say install .NET Core. The inclusion of the shared framework is implied.

Member

danroth27 commented Apr 8, 2016

@guardrex Please base these changes on the dev branch - that's were we doing all of the RC2 updates.

Also, the plan is that using the "shared framework" is the default application model, so you can just say install .NET Core. The inclusion of the shared framework is implied.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 9, 2016

Collaborator

@danroth27 @Rick-Anderson Thanks Dan. I'll get this based on the dev branch.

WRT Shared Framework testing ... ooooooooh man ... aspnet/IISIntegration#125

It's really broken right now while they're working on it. Pawel can't get it to run; and of course since he couldn't get it working, my efforts were bound to meet with no success.

I want to do the Troubleshooting testing for shared and standalone simultaneously, so I'm going to pick this back up Thursday/Friday (4/14-4/15) of next week ... that should give them some time to work things forward.

Collaborator

guardrex commented Apr 9, 2016

@danroth27 @Rick-Anderson Thanks Dan. I'll get this based on the dev branch.

WRT Shared Framework testing ... ooooooooh man ... aspnet/IISIntegration#125

It's really broken right now while they're working on it. Pawel can't get it to run; and of course since he couldn't get it working, my efforts were bound to meet with no success.

I want to do the Troubleshooting testing for shared and standalone simultaneously, so I'm going to pick this back up Thursday/Friday (4/14-4/15) of next week ... that should give them some time to work things forward.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 12, 2016

Collaborator

@danroth27 @Rick-Anderson With Pawel's help, I have the shared framework running now under IIS. The problem was merely conflicting NuGet packages due to having the wrong feeds in NuGet.config. Just as well for us, as that's another Troubleshooting scenario to list. 😄

I'll pick back up with testing within the next few days.

Collaborator

guardrex commented Apr 12, 2016

@danroth27 @Rick-Anderson With Pawel's help, I have the shared framework running now under IIS. The problem was merely conflicting NuGet packages due to having the wrong feeds in NuGet.config. Just as well for us, as that's another Troubleshooting scenario to list. 😄

I'll pick back up with testing within the next few days.

@joshcomley

This comment has been minimized.

Show comment
Hide comment
@joshcomley

joshcomley Apr 14, 2016

@guardrex do you have a demo project somewhere will the full setup for running in IIS? I can't get it to work :(

joshcomley commented Apr 14, 2016

@guardrex do you have a demo project somewhere will the full setup for running in IIS? I can't get it to work :(

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 14, 2016

Collaborator

@joshcomley yeah ... in my repo ... did you want to go standalone or shared .. shared seems very broken to me right now ... test app failing totally. Standalone is working. Try the https://github.com/GuardRex/repro one and join us on JabbR if you need help at https://jabbr.net/#/rooms/AspNetCore

Collaborator

guardrex commented Apr 14, 2016

@joshcomley yeah ... in my repo ... did you want to go standalone or shared .. shared seems very broken to me right now ... test app failing totally. Standalone is working. Try the https://github.com/GuardRex/repro one and join us on JabbR if you need help at https://jabbr.net/#/rooms/AspNetCore

@joshcomley

This comment has been minimized.

Show comment
Hide comment
@joshcomley

joshcomley Apr 14, 2016

Thanks so much @guardrex, I'll take a loot and try that now. I'm perfectly happy to go standalone, so hopefully I can get this to work!

joshcomley commented Apr 14, 2016

Thanks so much @guardrex, I'll take a loot and try that now. I'm perfectly happy to go standalone, so hopefully I can get this to work!

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 14, 2016

Collaborator

@joshcomley Sure thing. Visit on JabbR if you need tips from the cats there or ping me on GH when I'll be online over there. We'll see if we can get you some .NET Core action going.

Collaborator

guardrex commented Apr 14, 2016

@joshcomley Sure thing. Visit on JabbR if you need tips from the cats there or ping me on GH when I'll be online over there. We'll see if we can get you some .NET Core action going.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 27, 2016

Collaborator

@danroth27 @Rick-Anderson

I'm back on this today.

The inclusion of the shared framework is implied.

I knew that the shared framework is the default application type; however, is the plan for the shared framework to be auto-magically installed on the server just by virtue of deploying the app (or some other automatic process)?

I was under the impression that the .NET Core Installer will still need to be deployed and run (once per dotnet cli version) for each hosting server where a shared framework app will be deployed.

If that's the case, then the doc still needs a blurb on how to obtain and install the shared framework on the server. If the doc doesn't get a blurb on it, I feel almost certain that devs will dotnet publish a shared framework app locally, deploy the publish folder output, and 💥 no love if the shared framework isn't present on the server. The exception will be the good 'ole 502.3 with Error: Process '0' failed to start. Port = <port>, Error Code = '-2147024894'. and a created but empty ANCM log.

However, I was going to add this as a potential Troubleshooting item under the 502.3 grouping of potential issues to explore. Therefore, the doc could skip installing the shared framework in the main instruction and let devs who hit a 502.3 find it in Troubleshooting. I would prefer to see it in the main instruction, but it's your call, of course.

Collaborator

guardrex commented Apr 27, 2016

@danroth27 @Rick-Anderson

I'm back on this today.

The inclusion of the shared framework is implied.

I knew that the shared framework is the default application type; however, is the plan for the shared framework to be auto-magically installed on the server just by virtue of deploying the app (or some other automatic process)?

I was under the impression that the .NET Core Installer will still need to be deployed and run (once per dotnet cli version) for each hosting server where a shared framework app will be deployed.

If that's the case, then the doc still needs a blurb on how to obtain and install the shared framework on the server. If the doc doesn't get a blurb on it, I feel almost certain that devs will dotnet publish a shared framework app locally, deploy the publish folder output, and 💥 no love if the shared framework isn't present on the server. The exception will be the good 'ole 502.3 with Error: Process '0' failed to start. Port = <port>, Error Code = '-2147024894'. and a created but empty ANCM log.

However, I was going to add this as a potential Troubleshooting item under the 502.3 grouping of potential issues to explore. Therefore, the doc could skip installing the shared framework in the main instruction and let devs who hit a 502.3 find it in Troubleshooting. I would prefer to see it in the main instruction, but it's your call, of course.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 28, 2016

Collaborator

There is a good discussion between @Kukkimonsuta, @blowdart, and myself on the risks associated with renaming or moving the web.config file in IIS hosting scenarios starting at aspnet/IISIntegration#158 (comment), which I'm including here for reference. I'll add a blurb to the doc update for you to consider.

Collaborator

guardrex commented Apr 28, 2016

There is a good discussion between @Kukkimonsuta, @blowdart, and myself on the risks associated with renaming or moving the web.config file in IIS hosting scenarios starting at aspnet/IISIntegration#158 (comment), which I'm including here for reference. I'll add a blurb to the doc update for you to consider.

@danroth27

This comment has been minimized.

Show comment
Hide comment
@danroth27

danroth27 Apr 28, 2016

Member

is the plan for the shared framework to be auto-magically installed on the server just by virtue of deploying the app (or some other automatic process)?

No, nothing auto-magical. It's just a terminology thing. Since using the "shared framework" will be the most common case for .NET Core apps my thinking was to avoid promoting "shared framework" as a formal term and instead just assume it's implied unless you say otherwise. I.e. there are .NET Core apps and stand-alone .NET Core apps.

@blackdwarf Is this consistent with the language you guys are using in the .NET Core docs?

Member

danroth27 commented Apr 28, 2016

is the plan for the shared framework to be auto-magically installed on the server just by virtue of deploying the app (or some other automatic process)?

No, nothing auto-magical. It's just a terminology thing. Since using the "shared framework" will be the most common case for .NET Core apps my thinking was to avoid promoting "shared framework" as a formal term and instead just assume it's implied unless you say otherwise. I.e. there are .NET Core apps and stand-alone .NET Core apps.

@blackdwarf Is this consistent with the language you guys are using in the .NET Core docs?

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 28, 2016

Collaborator

Oh, I thought you were saying to "drop it totally." I didn't get that you were calling attention to the terminology. Sure thing, whatever it will be called that the .NET Core Installer is installing on the server ... I'll fix the phrasing. It's just that it is commonly referred to as the "shared framework" in GH issue and JabbR circles.

Collaborator

guardrex commented Apr 28, 2016

Oh, I thought you were saying to "drop it totally." I didn't get that you were calling attention to the terminology. Sure thing, whatever it will be called that the .NET Core Installer is installing on the server ... I'll fix the phrasing. It's just that it is commonly referred to as the "shared framework" in GH issue and JabbR circles.

@danroth27

This comment has been minimized.

Show comment
Hide comment
@danroth27

danroth27 Apr 28, 2016

Member

We should use whatever terminology the .NET Core folks decide on, but last I spoke to @richlander I think his preference was to not use "shared framework" as an official term.

Also, I agree that this doc needs to clarify that .NET Core should already be installed.

Member

danroth27 commented Apr 28, 2016

We should use whatever terminology the .NET Core folks decide on, but last I spoke to @richlander I think his preference was to not use "shared framework" as an official term.

Also, I agree that this doc needs to clarify that .NET Core should already be installed.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 28, 2016

Collaborator

Gotcha ... @blackdwarf sticks with (.NET Core and portable) vs. (self-contained) https://github.com/blackdwarf/core-docs/blob/clidocs/docs/core-concepts/app-types.md, so I know what to do now. Thanks.

I'm finishing up the testing now, and I think the updates to the Troubleshooting section will save a lot of tears and frustration later.

Collaborator

guardrex commented Apr 28, 2016

Gotcha ... @blackdwarf sticks with (.NET Core and portable) vs. (self-contained) https://github.com/blackdwarf/core-docs/blob/clidocs/docs/core-concepts/app-types.md, so I know what to do now. Thanks.

I'm finishing up the testing now, and I think the updates to the Troubleshooting section will save a lot of tears and frustration later.

@shirhatti

This comment has been minimized.

Show comment
Hide comment
@shirhatti

shirhatti Apr 28, 2016

Member

@guardrex I'm in the process of trying of compile a list of common error scenarios. You can use this doc as reference

Member

shirhatti commented Apr 28, 2016

@guardrex I'm in the process of trying of compile a list of common error scenarios. You can use this doc as reference

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 28, 2016

Collaborator

@shirhatti Exactly! Let's compare notes! 😄 I'm working my last test scenario now. I'm testing both a self-contained and a portable app and recording the browser response, any Application log entry, and any ANCM log entry for the following test conditions ...

  • No AspNetCoreModule installed
  • No Shared Framework installed
  • Installed shared framework without restart
  • Used .UseUrls("") or .UseUrls() after .UseIISIntegration() on WebHostBuilder
  • No app in the folder where IIS is pointed
  • AppPool is set to use Managed Code
  • AppPool identity doesn't have permissions for app folder
  • Requesting an IIS app at an incorrect Url
  • Classic managed pipeline mode
  • Enabled 32-bit app IIS AppPool for a 64-bit app
  • Disabled 32-bit app IIS AppPool for a 32-bit app
  • Bad processPath
  • Bad arguments
  • AppPool is stopped
  • Website is stopped

... some of these scenarios are just fine and produce no problems; however, it's good to have a full suite of things that we can easily guess that devs will do and then check every one of them. I'd like the Troubleshooting section to be insanely good ... taking into account all of my personal pet peeves about Microsoft documentation since I started working with MS technology decades ago.

Collaborator

guardrex commented Apr 28, 2016

@shirhatti Exactly! Let's compare notes! 😄 I'm working my last test scenario now. I'm testing both a self-contained and a portable app and recording the browser response, any Application log entry, and any ANCM log entry for the following test conditions ...

  • No AspNetCoreModule installed
  • No Shared Framework installed
  • Installed shared framework without restart
  • Used .UseUrls("") or .UseUrls() after .UseIISIntegration() on WebHostBuilder
  • No app in the folder where IIS is pointed
  • AppPool is set to use Managed Code
  • AppPool identity doesn't have permissions for app folder
  • Requesting an IIS app at an incorrect Url
  • Classic managed pipeline mode
  • Enabled 32-bit app IIS AppPool for a 64-bit app
  • Disabled 32-bit app IIS AppPool for a 32-bit app
  • Bad processPath
  • Bad arguments
  • AppPool is stopped
  • Website is stopped

... some of these scenarios are just fine and produce no problems; however, it's good to have a full suite of things that we can easily guess that devs will do and then check every one of them. I'd like the Troubleshooting section to be insanely good ... taking into account all of my personal pet peeves about Microsoft documentation since I started working with MS technology decades ago.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 28, 2016

Collaborator

@shirhatti Ok ... I have the data, now I'll see what I can do with it.

App Type Breakage Browser Response Application Log AspNetCoreModule Log
SELF No AspNetCoreModule installed 500.19 none no log file generated
SELF Used .UseUrls("") or .UseUrls() after .UseIISIntegration() no response Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -4092 EACCES permission denied)
SELF No app in the folder where IIS is pointed 403 or 403.14 none no log file generated
SELF AppPool is set to use Managed Code runs ok runs ok runs ok
SELF AppPool identity doesn't have permissions for app folder 500.19 none no log file generated
SELF Requesting an IIS app at an incorrect Url ERR CONNECTION REFUSED none no log file generated
SELF Classic managed pipeline mode runs ok runs ok runs ok
SELF Enabled 32-bit app in IIS for a 64-bit app runs ok runs ok runs ok
SELF Not enabled 32-bit app for IIS AppPool for a 32-bit app runs ok runs ok runs ok
SELF Bad processPath 502.3 Process '0' failed to start. Port = , Error Code = '-2147024894'. log generated but empty
SELF Bad arguments 502.3 Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Unhandled Exception: System.FormatException: Unrecognized argument format
SELF AppPool is stopped 503 none no log file generated
SELF Website is stopped ERR CONNECTION REFUSED none no log file generated
PORT No AspNetCoreModule installed 500.19 none no log file generated
PORT .NET Core not installed 502.3 Error: Process '0' failed to start. Port = , Error Code = '-2147024894'. created but empty
PORT Installed .NET Core without restart 502.3 Error: Process '0' failed to start. Port = , Error Code = '-2147024894'. created but empty
PORT Used .UseUrls("") or .UseUrls() after .UseIISIntegration() no response Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -4092 EACCES permission denied)
PORT No app in the folder where IIS is pointed 403 or 403.14 none no log file generated
PORT AppPool is set to use Managed Code runs ok runs ok runs ok
PORT AppPool identity doesn't have permissions for app folder 500.19 none no log file generated
PORT Requesting an IIS app at an incorrect Url ERR CONNECTION REFUSED none no log file generated
PORT Classic managed pipeline mode runs ok runs ok runs ok
PORT Enabled 32-bit app in IIS for a 64-bit app runs ok runs ok runs ok
PORT Not enabled 32-bit app for IIS AppPool for a 32-bit app runs ok runs ok runs ok
PORT Bad processPath 502.3 Process '0' failed to start. Port = , Error Code = '-2147024894'. log generated but empty
PORT Bad arguments 502.3 Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Expected to load required hostpolicy.dll from [<IIS_WEBSITE_PHYSICAL_PATH>] - This may be because of an invalid .NET Core FX configuration in the directory.
PORT AppPool is stopped 503 none no log file generated
PORT Website is stopped ERR CONNECTION REFUSED none no log file generated
Collaborator

guardrex commented Apr 28, 2016

@shirhatti Ok ... I have the data, now I'll see what I can do with it.

App Type Breakage Browser Response Application Log AspNetCoreModule Log
SELF No AspNetCoreModule installed 500.19 none no log file generated
SELF Used .UseUrls("") or .UseUrls() after .UseIISIntegration() no response Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -4092 EACCES permission denied)
SELF No app in the folder where IIS is pointed 403 or 403.14 none no log file generated
SELF AppPool is set to use Managed Code runs ok runs ok runs ok
SELF AppPool identity doesn't have permissions for app folder 500.19 none no log file generated
SELF Requesting an IIS app at an incorrect Url ERR CONNECTION REFUSED none no log file generated
SELF Classic managed pipeline mode runs ok runs ok runs ok
SELF Enabled 32-bit app in IIS for a 64-bit app runs ok runs ok runs ok
SELF Not enabled 32-bit app for IIS AppPool for a 32-bit app runs ok runs ok runs ok
SELF Bad processPath 502.3 Process '0' failed to start. Port = , Error Code = '-2147024894'. log generated but empty
SELF Bad arguments 502.3 Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Unhandled Exception: System.FormatException: Unrecognized argument format
SELF AppPool is stopped 503 none no log file generated
SELF Website is stopped ERR CONNECTION REFUSED none no log file generated
PORT No AspNetCoreModule installed 500.19 none no log file generated
PORT .NET Core not installed 502.3 Error: Process '0' failed to start. Port = , Error Code = '-2147024894'. created but empty
PORT Installed .NET Core without restart 502.3 Error: Process '0' failed to start. Port = , Error Code = '-2147024894'. created but empty
PORT Used .UseUrls("") or .UseUrls() after .UseIISIntegration() no response Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -4092 EACCES permission denied)
PORT No app in the folder where IIS is pointed 403 or 403.14 none no log file generated
PORT AppPool is set to use Managed Code runs ok runs ok runs ok
PORT AppPool identity doesn't have permissions for app folder 500.19 none no log file generated
PORT Requesting an IIS app at an incorrect Url ERR CONNECTION REFUSED none no log file generated
PORT Classic managed pipeline mode runs ok runs ok runs ok
PORT Enabled 32-bit app in IIS for a 64-bit app runs ok runs ok runs ok
PORT Not enabled 32-bit app for IIS AppPool for a 32-bit app runs ok runs ok runs ok
PORT Bad processPath 502.3 Process '0' failed to start. Port = , Error Code = '-2147024894'. log generated but empty
PORT Bad arguments 502.3 Process '<PROC_ID>' failed to start. Port = , Error Code = '-2147023829'. Expected to load required hostpolicy.dll from [<IIS_WEBSITE_PHYSICAL_PATH>] - This may be because of an invalid .NET Core FX configuration in the directory.
PORT AppPool is stopped 503 none no log file generated
PORT Website is stopped ERR CONNECTION REFUSED none no log file generated
@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 29, 2016

Collaborator

@danroth27 @Rick-Anderson @shirhatti

I did some sorting and arranging, and I've come up with this format similar to the current format. We can take the new ones below and add/replace them into the ones that are there with the addition of Application Log entries (if present) and ANCM Log entries (if present) added to the set in the currently published doc.

Ignore any minor spelling or formatting errors right now. This is a very very WIP draft.

If you think of any additional test scenarios, let me know, and I'll give them a shot.

I'll be pressing forward with the PR tomorrow (for the dev branch ... I haven't forgotten 😄 ) and with revised language for ".NET Core," "portable application," and "self-contained application."

Browser: No response
Application Log: Process 'PROC_ID' failed to start. Port = PORT, Error Code = '-2147023829'.
ANCM Log: Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -4092 EACCES permission denied)

  • Make sure you have the .UseUrls(...) extension before the .UseIISIntegration() extension on WebHostBuilder.

Browser: ERR_CONNECTION_REFUSED
Application Log: No entry
ANCM Log: Log file not created

  • Confirm you are using the correct Uri endpoint for the application. Check your bindings.
  • Confirm that the IIS website is not in the Stopped state.

Browser: 403 Forbidden: Access is denied --OR-- 403.14 Forbidden: The Web server is configured to not list the contents of this directory.
Application Log: No entry
ANCM Log: Log file not created

  • Check the IIS website Basic Settings and the physical application assets folder, and determine that the application is in the folder at the IIS website Physical path.

Browser: 500.19 Internal Server Error: The requested page cannot be accessed because the related configuration data for the page is invalid.
Application Log: No entry
ANCM Log: Log file not created

  • Check Programs & Features and confirm that the Microsoft ASP.NET Core Module has been installed. If the Microsoft ASP.NET Core Module is not present in the list of installed programs, install the module [ADD LINK].
  • Make sure that the Application Pool Process Model Identity is either set to ApplicationPoolIdentity; or if a custom identity is in use, confirm the identity has permissions to read, modify, and execute on the application's folder.

Browser: 502.3 Bad Gateway: There was a connection error while trying to route the request.
Application Log: Process '0' failed to start. Port = PORT, Error Code = '-2147024894'.
ANCM Log: Log file created but empty

  • Check the processPath attribute on the aspNetCore element in web.config to confirm that it is dotnet for a portable application or .\my_application.exe for a self-contained application.
  • You may have deployed a portable application without installing .NET Core on the server. If you are attempting to deploy a portable application and have not installed .NET Core, run the .NET Core Installer on the server [ADD LINK].
  • You may have deployed a portable application and installed .NET Core without restarting the server. Restart the server.

Browser: 502.3 Bad Gateway: There was a connection error while trying to route the request.
Application Log: Process 'PROC_ID' failed to start. Port = PORT, Error Code = '-2147023829'.
ANCM Log: Unhandled Exception: System.FormatException: Unrecognized argument format --OR -- Expected to load required hostpolicy.dll from [IIS_WEBSITE_PHYSICAL_PATH] - This may be because of an invalid .NET Core FX configuration in the directory.

  • Examine the arguments attribute on the aspNetCore element in web.config to confirm that it is either (a) .\my_applciation.dll for a portable application; or (b) an empty string or arg1, arg2, ... (a list of your application's bonafide arguments) for a self-contained application.

Browser: 503 Service Unavailable
Application Log: No entry
ANCM Log: Log file not created

  • Confirm that the Application Pool is not in the Stopped state.
Collaborator

guardrex commented Apr 29, 2016

@danroth27 @Rick-Anderson @shirhatti

I did some sorting and arranging, and I've come up with this format similar to the current format. We can take the new ones below and add/replace them into the ones that are there with the addition of Application Log entries (if present) and ANCM Log entries (if present) added to the set in the currently published doc.

Ignore any minor spelling or formatting errors right now. This is a very very WIP draft.

If you think of any additional test scenarios, let me know, and I'll give them a shot.

I'll be pressing forward with the PR tomorrow (for the dev branch ... I haven't forgotten 😄 ) and with revised language for ".NET Core," "portable application," and "self-contained application."

Browser: No response
Application Log: Process 'PROC_ID' failed to start. Port = PORT, Error Code = '-2147023829'.
ANCM Log: Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -4092 EACCES permission denied)

  • Make sure you have the .UseUrls(...) extension before the .UseIISIntegration() extension on WebHostBuilder.

Browser: ERR_CONNECTION_REFUSED
Application Log: No entry
ANCM Log: Log file not created

  • Confirm you are using the correct Uri endpoint for the application. Check your bindings.
  • Confirm that the IIS website is not in the Stopped state.

Browser: 403 Forbidden: Access is denied --OR-- 403.14 Forbidden: The Web server is configured to not list the contents of this directory.
Application Log: No entry
ANCM Log: Log file not created

  • Check the IIS website Basic Settings and the physical application assets folder, and determine that the application is in the folder at the IIS website Physical path.

Browser: 500.19 Internal Server Error: The requested page cannot be accessed because the related configuration data for the page is invalid.
Application Log: No entry
ANCM Log: Log file not created

  • Check Programs & Features and confirm that the Microsoft ASP.NET Core Module has been installed. If the Microsoft ASP.NET Core Module is not present in the list of installed programs, install the module [ADD LINK].
  • Make sure that the Application Pool Process Model Identity is either set to ApplicationPoolIdentity; or if a custom identity is in use, confirm the identity has permissions to read, modify, and execute on the application's folder.

Browser: 502.3 Bad Gateway: There was a connection error while trying to route the request.
Application Log: Process '0' failed to start. Port = PORT, Error Code = '-2147024894'.
ANCM Log: Log file created but empty

  • Check the processPath attribute on the aspNetCore element in web.config to confirm that it is dotnet for a portable application or .\my_application.exe for a self-contained application.
  • You may have deployed a portable application without installing .NET Core on the server. If you are attempting to deploy a portable application and have not installed .NET Core, run the .NET Core Installer on the server [ADD LINK].
  • You may have deployed a portable application and installed .NET Core without restarting the server. Restart the server.

Browser: 502.3 Bad Gateway: There was a connection error while trying to route the request.
Application Log: Process 'PROC_ID' failed to start. Port = PORT, Error Code = '-2147023829'.
ANCM Log: Unhandled Exception: System.FormatException: Unrecognized argument format --OR -- Expected to load required hostpolicy.dll from [IIS_WEBSITE_PHYSICAL_PATH] - This may be because of an invalid .NET Core FX configuration in the directory.

  • Examine the arguments attribute on the aspNetCore element in web.config to confirm that it is either (a) .\my_applciation.dll for a portable application; or (b) an empty string or arg1, arg2, ... (a list of your application's bonafide arguments) for a self-contained application.

Browser: 503 Service Unavailable
Application Log: No entry
ANCM Log: Log file not created

  • Confirm that the Application Pool is not in the Stopped state.
@dodyg

This comment has been minimized.

Show comment
Hide comment
@dodyg

dodyg Apr 30, 2016

Contributor

I got 503 Service Unavailable error

The Application pool is in "stopped" state after I try to run it from the browser. Running the .exe works fine. It's when trying to access it via IIS creates problem. (Windows 10). There is no log file generated.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\crucible.web.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout\output.log" />
  </system.webServer>
</configuration>
Contributor

dodyg commented Apr 30, 2016

I got 503 Service Unavailable error

The Application pool is in "stopped" state after I try to run it from the browser. Running the .exe works fine. It's when trying to access it via IIS creates problem. (Windows 10). There is no log file generated.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\crucible.web.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout\output.log" />
  </system.webServer>
</configuration>
@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 30, 2016

Collaborator

@dodyg Anything in the Application Log via Event Viewer? ... Usually the Service Unavailable one is caused by a crashing AppPool that ends up breaking the binding.

Collaborator

guardrex commented Apr 30, 2016

@dodyg Anything in the Application Log via Event Viewer? ... Usually the Service Unavailable one is caused by a crashing AppPool that ends up breaking the binding.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 30, 2016

Collaborator

@dodyg Side Note: You can take the file extension off ..

stdoutLogFile=".\logs\stdout\output.log"

... to ...

stdoutLogFile=".\logs\stdout\output"

The timestamp and file extension will be added for you when the log file is created.

Collaborator

guardrex commented Apr 30, 2016

@dodyg Side Note: You can take the file extension off ..

stdoutLogFile=".\logs\stdout\output.log"

... to ...

stdoutLogFile=".\logs\stdout\output"

The timestamp and file extension will be added for you when the log file is created.

@dodyg

This comment has been minimized.

Show comment
Hide comment
@dodyg

dodyg Apr 30, 2016

Contributor

@guardrex thanks for the tips. I found out the problem (old IISNode module failed to load). The aspnetcore app is running on IIS now.

Contributor

dodyg commented Apr 30, 2016

@guardrex thanks for the tips. I found out the problem (old IISNode module failed to load). The aspnetcore app is running on IIS now.

@guardrex

This comment has been minimized.

Show comment
Hide comment
@guardrex

guardrex Apr 30, 2016

Collaborator

@dodyg Ah, excellent news! 👍 👏 👏 👏 👏

Collaborator

guardrex commented Apr 30, 2016

@dodyg Ah, excellent news! 👍 👏 👏 👏 👏

@danroth27 danroth27 added 3 - Done and removed 0 - Backlog labels May 18, 2016

@danroth27 danroth27 closed this May 18, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment