我一直在ASP.Net网站上工作,并且已经发布到我的服务器而没有任何问题。我决定将它发布的路径改为几步,以便更符合逻辑。
之前:C:/ inetpub / wwwroot /(HERE)
在我得到了我想要的一切后,我把它改成了两步。
之后:C:/ inetpub / wwwroot / super / duper /(HERE)
直到我清理了/ wwwroot /中的顶级内容,一切都开始破坏了。我会得到错误,说我的.ashx处理程序无法找到。茫然地盯着几个小时后,我将我的/ super / duper / bin /文件移到了顶层,/ inetpub / wwwroot / bin /和viola。它奏效了。
现在我的问题是,当/ bin /文件可以访问web时,为什么会产生这种效果呢?
答案 0 :(得分:0)
bin目录是已编译程序集所在的系统目录,除非它们不在GAC中。 Bin目录应位于站点根文件夹中。除非您拥有自己的程序集注册模块或未动态加载它们: - )
答案 1 :(得分:0)
我认为其他答案和这个问题暗示的是仅将文件夹移动到您希望引用您网站的位置并且更重要的是运行您的代码是不够的。我看到它的方式是你有两种选择。
选项1。
将bin文件夹保留为WWWROOT级别,但将其他项目移动到所需的文件夹结构中。运行时会将bin文件夹中的dll加载到app池中,你的aspx等应该会看到它。
选项2.
在您想要的级别创建一个虚拟文件夹/应用程序,并将所有内容放入其中。
我认为选项2更好。
另外,如果您未在网址中使用〜,则可能需要查看。
答案 2 :(得分:-1)
ASP.NET应用程序应放在IIS中定义为Application的文件夹的根目录中。您可以在任何文件夹中创建应用程序。应用程序级别的内容(如包含应用程序设置的web.config和bin文件夹)应直接放在此Application文件夹中。在IIS6中,该应用程序称为虚拟目录。