为什么我收到消息“无法从当前应用程序池执行指定的请求”?

发布于 2024-12-28 06:36:10 字数 714 浏览 2 评论 0原文

很不知道为什么我会看到这个错误。 我像这样导航到我的登录视图 http://test.staging.com/mywebsite/Login

我的登录视图刚刚使用 MVC 重做,但我也看到同样的错误消息转到 aspx 页面...

如果我使用 http,我会收到错误消息 无法从当前应用程序池执行指定的请求< /em>. 如果我使用 https://test.staging.com/mywebsite/Login,我好的。 如果我没有指定协议,test.staging.com/mywebsite/Login,我也收到错误

是否在幕后发生错误,并且我的自定义错误页面无法像讨论的那样显示这里

导致此错误的其他原因还有哪些?

Quite not sure why I see this error.
I navigate to my Login View like so http://test.staging.com/mywebsite/Login

My Login view was just redone using MVC but I have seen this same error message going to an aspx page as well...

If I use http I get the error message The specified request cannot be executed from current Application Pool.
If I use https://test.staging.com/mywebsite/Login, I'm good.
If I don't specify a protocol, test.staging.com/mywebsite/Login, I get the error as well

Is there an error happening under the covers and my custom error page can't be shown like discussed here?

What are some other causes of this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

韶华倾负 2025-01-04 06:36:10

这通常意味着您的自定义错误被配置为作为不同的应用程序池运行。

您可以在 MSDN 阅读更多信息。 (请参阅“使用另一个应用程序池中的自定义错误”部分)。

有两种方法可以纠正此行为。第一个可能不是您感兴趣的,因为它需要您更改当前的体系结构并在同一应用程序池中运行两个站点(例如共享相同的工作进程内存空间)。为此,只需将 /errors 虚拟目录移动到与其提供自定义错误的站点相同的应用程序池中运行。

第二种方法是使用 IIS 6.0 提供的注册表项。此注册表项可确保 IIS 6.0 在执行自定义错误期间不会检查元数据,从而允许此操作发挥作用。

有关注册表项修复的信息,请参阅文章。

这也可能意味着您正在使用类似于 Server.Transfer 的内容到位于不同 AppPool 中的页面。

That usually means your custom errors are configured to run as a different AppPool.

You can read more at MSDN. (See section "Using Custom Errors from Another Application Pool").

There are two ways to correct this behavior. The first is possibly not one that you are interested in because it would require you to change your current architecture and run both sites in the same application pool (such as share the same worker process memory space). To do this, simply move the /errors virtual directory to run in the same application pool as the site for which it serves the custom error.

The second way is to make use of a registry key provided by IIS 6.0. This registry key makes sure IIS 6.0 does not check the metadata during the execution of the custom error and therefore allowing this to work.

See the article for information on the registry key fix.

It may also mean that you are using something along the lines of Server.Transfer to a page that is in a different AppPool.

兔姬 2025-01-04 06:36:10

这可能是因为您为池中的一个或多个应用程序使用了不同版本的 ASP.NET。

  1. 确保池中的所有应用程序都使用相同版本的 ASP(例如 ASP 2.0.50727)。
  2. 如果您刚刚添加了新应用程序,请尝试暂时将该应用程序更改为不同版本的 ASP,然后再返回到相同版本。我遇到了一个问题,显示的版本是正确的,但在幕后,使用了不同的版本!
  3. 检查“应用程序”下的事件日志,以获取有关错误的更多详细信息。

It could be because you're using different versions of ASP.NET for one or many apps in the pool.

  1. Make sure all apps in the pool use the same version of ASP (e.g. ASP 2.0.50727)
  2. If you just added a new app, try changing the app momentarily to a different version of ASP, then back to same version. I experienced an issue where the displayed version was correct, but under the hood, a different version was used!
  3. Check your event log, under Application, to get more details about the error.
最冷一天 2025-01-04 06:36:10

该消息可能是由于您的页面服务器端重定向到另一个应用程序池提供的页面而引起的。例如,在您的链接中,错误页面。

The message would be caused by your page server-side redirecting to a page served by another application pool. Such as for example, in your link, the error page.

三生池水覆流年 2025-01-04 06:36:10

我知道这是一个旧线程,但我偶然发现它并找到了不同的解决方案。以下是对我有用的方法:确保您的应用程序正确处理

来自 IIS 的 .asmx 文件:
右键单击您的项目>属性>配置

如有必要,添加映射到 aspnet_isapi.dll 的 .asmx 文件扩展名

限制为:“GET、HEAD、POST、DEBUG”并重新启动。

I know this is an old thread, but I stumbled upon it and found a different solution. Here's what worked for me: Make sure your application handles .asmx files correctly

From IIS:
Right Click on your project > Properties > Configuration

If necessary, add the .asmx file extension that maps to the aspnet_isapi.dll

Limit to: "GET,HEAD,POST,DEBUG" and restart.

镜花水月 2025-01-04 06:36:10

因为我无法评论 vcsjones 的答案,所以我将其添加到此处。需要在 HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters 与该 technet 文章中引用的 HKLM\SYSTEM\CurrentControlSet\Services\W3SVC 下设置 DWORD 值 IgnoreAppPoolForCustomErrors。将其设置为 1 并执行 iisreset 即可。

来源博客文章

Because I can't comment on vcsjones's answer, I'll add it down here. The DWORD value IgnoreAppPoolForCustomErrors needs to be set under HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters vs HKLM\SYSTEM\CurrentControlSet\Services\W3SVC referenced in that technet article. Set it to 1 and do an iisreset and you're good to go.

Source Blog Post

泛泛之交 2025-01-04 06:36:10

在我的特定情况下,我在尝试为内容(非 ASP.NET)网站提供服务时收到此错误,而该网站是一个应用程序。右键单击虚拟文件夹并删除应用程序为我解决了这个问题。

In my particular case, I received this error while trying to serve a content (non ASP.NET) website while it was an Application. Right-Clicking the virtual folder and removing the application fixed it for me.

分开我的手 2025-01-04 06:36:10

就我而言,应用程序使用了不存在的应用程序池。我不知道这是怎么发生的。

In my case the application used the application pool that didn't exist. I have no idea how it's happened.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文