asp.net – 如何配置IIS Express来调试子目录中的应用程序?

前端之家收集整理的这篇文章主要介绍了asp.net – 如何配置IIS Express来调试子目录中的应用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的Web应用程序通常位于IIS根目录的子目录中。假设子目录是“app”

当我尝试在Visual Studio中进行调试时,该路径一直植根于localhost,没有子目录。这使我的路径在应用程序中混乱。

当我尝试将项目URL的形式从http:// localhost:port /更改为http:// localhost:port / app时,它只是说“无法创建虚拟目录”。那么这就是它第一次说,直到我从application.config文件删除应用程序条目,然后它成功。

当我尝试“覆盖应用程序根URL”到同一件事情,它不工作。它会获得错误500.0内部服务器错误,或在某些情况下,它的行为就像将应用程序的web.config文件应用于根和虚拟子目录,因为它给出了一个错误,我试图添加一个已经被添加(大概在根)。

我已经尝试在IIS Express的application.config中编辑项目的设置,但没有组合的设置似乎工作。

我不明白为什么visual studio将项目定位在IIS Express根目录下,当它知道这个项目被部署到一个子目录中的IIS时。我认为它应该默认匹配目录结构。

这就是现在的样子:

<site name="app" id="5">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/app" physicalPath="C:\Users\username\Desktop\wwwroot\app" />
   </application>
   <bindings>
     <binding protocol="http" bindingInformation="*:3056:localhost" />
   </bindings>
</site>

如果我将应用程序路径更改为“/ app”,则会给出错误500.19,表示配置无效。如果我做同样的事情,删除虚拟目录标签,那么它无法完全启动IIS Express。

解决方法

我在这里找到答案: http://stackoverflow.com/a/4733387/88409
不同的问题,但答案相同。

基本上,必须创建一个子应用程序,而不仅仅是一个子虚拟目录。

<site name="app" id="5">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\username\Desktop\wwwroot" />
    </application>
    <application path="/app" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\Users\username\Desktop\wwwroot\app" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:3056:localhost" />
    </bindings>
</site>

似乎需要两个应用程序条目(即它需要根应用程序(即使它实际上是一个空的虚拟目录)以及子应用程序)。如果我省略了第一个应用程序条目,那么它将出现错误500.19“由于该页面的相关配置数据无效,所以无法访问请求的页面。”但是,使用这两个应用程序条目,它无任何问题。

据我所知,无法在Visual Studio生成上述设置,因此必须在application.config中手动编辑。因此,这些设置与Web应用程序项目文件本身完全取消关联,这不是很好,IMO。

原文链接:https://www.f2er.com/aspnet/252261.html

猜你在找的asp.Net相关文章