从网络外部访问站点时,IIS 网站路径的行为会有所不同



正如标题所述,当我尝试从互联网访问它时,我的网站上会得到不同的行为,而不是从本地网络访问它,我不知道为什么。我知道这是因为 IIS 试图从父应用程序为我提供内容,但我不知道如何解决它。

让我尝试解释一下:我有一个网站(不是 Web 应用程序(,我将其部署到现有的 IIS 站点,然后将其转换为应用程序。如果我从本地网络(<hostname>/path/to/site.aspx(访问该网站,那么一切正常,但是当我尝试从互联网(<domain.name>/path/to/site.aspx(访问该网站时,它会中断,并且我为域正确设置了映射(它适用于父应用程序(。

最初它无法访问 Site.Master 页,说在<Site Parent Folder>/Site.Master找不到该文件(而不是<Site Parent Folder>/<Current App>/Site.Master(,所以我不得不将 ASP 页上的母版页引用从~/Site.Master更改为仅Site.Master这似乎仅适用于母版页。它现在给了我一个错误,说无法在App_Code目录中找到我的类(The type or namespace name 'MyClass' could not be found. Are you missing a using directive or an assembly reference?(,所以我怀疑它仍在尝试引用父目录中的类。 关于如何修复它以便它引用当前应用程序的目录而不是父应用程序的目录的任何想法? 提前谢谢。

确保部署的网站在主 IIS 站点下作为子应用程序运行。

在您的主 IIS 网站中更新 web.config 并使用位置元素包装system.web部分,inheritInChildApplications设置为 false

<location path="." inheritInChildApplications="false"> 
<system.web> 
… 
</system.web> 
</location>

您可以在此处阅读更多相关信息

最新更新