0

我一直在 ASP.Net 网站上工作,并且一直在毫无问题地发布到我的服务器。我决定将其发布的路径更改为向下几步,以便将所有内容放在更合乎逻辑的位置。

之前:C:/inetpub/wwwroot/(这里)

在我得到我想要的一切后,我将其更改为 2 步。

之后:C:/inetpub/wwwroot/super/duper/(这里)

直到我清理了 /wwwroot/ 中的顶级内容,一切才开始崩溃。我会收到错误消息,说找不到我的 .ashx 处理程序。在茫然地凝视了几个小时之后,我将 /super/duper/bin/ 文件移到了顶层,/inetpub/wwwroot/bin/ 和 viola。有效。

现在我的问题是,当 /bin/ 文件在整个时间内都可以通过网络访问时,为什么会产生这种效果?

4

3 回答 3

0

bin 目录是编译程序集所在的系统目录,除非它们不在 GAC 中。Bin 目录应位于站点根文件夹中。除非您有自己的程序集注册模块或不即时加载它们:-)

于 2012-02-20T12:24:45.357 回答
0

我认为其他答案和这个问题所暗示的是,仅仅将文件夹移动到您希望从中引用您的网站的位置,更重要的是从中运行您的代码是不够的。我的看法是你有两个选择。

选项1。

将 bin 文件夹保留在 WWWROOT 级别,但将其他项目移动到所需的文件夹结构中。运行时会将 bin 文件夹中的 dll 加载到应用程序池中,并且您的 aspx 等应该会看到它。

选项 2。

在您想要的级别创建一个虚拟文件夹/应用程序并将所有内容放入其中。

我认为选项2更好。

此外,如果您没有在您的网址中使用 ~ ,您可能需要查看一下。

于 2012-02-20T14:29:28.010 回答
-1

ASP.NET 应用程序应放置在 IIS 中定义为 Application 的文件夹的根目录中。您可以在任何文件夹中创建应用程序。应用程序级别的东西,如包含应用程序设置和 bin 文件夹的 web.config 应直接放在此应用程序文件夹中。在 IIS6 中,应用程序被称为虚拟目录。

于 2012-02-20T12:26:08.403 回答