【问题标题】:The virtual path '/' maps to another application, which is not allowed虚拟路径“/”映射到另一个应用程序,这是不允许的
【发布时间】:2016-01-31 07:26:17
【问题描述】:

我有一个用 Asp.NET MVC 开发的应用程序,我正在使用 Framework Postal MVC,它用于将视图作为电子邮件发送。

它工作正常,没有问题,但是,今天开始向我显示以下消息:

虚拟路径“/”映射到另一个应用程序,这是不允许的。

只有当我尝试使用 SendAsync (发送电子邮件的异步方法)时才会发生这种情况,但是,它以前可以正常工作。此外,如果我使用 Send(同步方法发送电子邮件),它可以工作。

我没有对属性、代码等进行任何更改。

我记得做过的最重要的事情是发布应用程序,但是在代码或配置中,我没有再做任何更改。

看起来在做异步时会丢失 HttpContext。

-- 当我在 Web.config 中添加以下参数时,Async 方法再次开始工作:

<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />

【问题讨论】:

  • 代码不会自发中断,某些东西发生了变化,无论是你做了还是你的网络管理员做了,代码都不能工作一段时间然后生锈并停止工作.. .
  • @RonBeyer 它发生在我的开发环境中,我正在发布它以投入生产环境。
  • 你的意思是 development environment &amp;&amp; Production environment 从来没有听说过用于环境的术语 ambient 我以前在复制项目而不设置虚拟目录和/或在目标环境如果环境在同一台机器上,我希望这不是你的情况。当你右键单击项目并点击Web --&gt; Project URL下的属性时会发生什么你的URL看起来像什么还有一个创建虚拟目录按钮他们太..
  • 还可以尝试将以下内容放在正斜杠 ~/ 的前面
  • @MethodMan 你是对的,是环境,而不是环境。关于 URL,它是 localhost:58893,还有一个创建虚拟目录按钮

标签: c# asp.net asp.net-mvc iis-7 postal


【解决方案1】:

同样,它也对我有用,突然之间,我开始在异步 AJAX 方法上遇到该错误。所以显然我正在复制整个错误的文件夹......但它连续工作了数周,因为在此之前,它已正确部署(使用 Publish 方法)。但不知何故,它开始意识到我没有发布(我想我在短时间内更改了很多次)并开始显示错误。

解决方法是使用 Publish 方法正确部署。 之后,它可以在没有上面提到的aspnet:UseTaskFriendlySynchronizationContext(在&lt;appsettings&gt; 下)的 web.config 修复的情况下工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2011-03-14
    • 2013-02-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多