我有一个奇怪的问题 - 到目前为止,我只在一台机器上使用过这个应用程序。我已将asp.net网络应用程序下载到客户办公室的开发计算机上。
当我尝试通过Visual Studio在调试模式下运行应用程序时,我收到500.19错误 - 通常这意味着权限问题。在我注意到它正在寻找配置文件的目录之前,我经历了检查权限的动作。
'配置文件'错误显示是
\\?\C:\Users\{my-name}\Documents\{project-name}\web.config
但是正确的位置实际上是
C:\用户\管理员\文件\项目\ {项目名称} \的web.config
有谁知道指定了Web配置的位置?我一直以为它只能在根目录中。
答案 0 :(得分:5)
事实证明,原因是升级到Visual Studio 2015.
新的Visual Studio不是.suo文件,而是具有特定于项目实例的文件的.vs文件夹。开发站点的根目录包含在此处。
我删除了这些文件并将.vs / *添加到我的.gitignore文件中,并且没有更多问题。
答案 1 :(得分:1)
在我们的基础结构中,事实证明,在带有节点<system.webServer>
的web.config内部,我们有一个名为<rewrite />
的嵌套节点。 IIS无法识别那个。
通过删除该节点或安装缺少的功能(url-rewrite),应用程序将按预期方式启动。
答案 2 :(得分:0)
假设您的意思是Documents\projects\{project-name}\web.config
而不是Documents\projects{project-name}\web.config
,您会看到应用范围的影响。
在IIS中,多个完全独立的Web应用程序可以通过拆分为“应用程序作用域”而成为同一网站的一部分 - 通常通过指定作用域根目录的前缀路径(IIS7之前的应用程序作用域)来工作可以是物理或虚拟目录,因为IIS7它们总是虚拟目录,但仍然可以代表物理目录。)
打开IIS管理器并选择Visual Studio为项目创建的(虚拟)目录,然后在左侧导航窗格中右键单击它并选择“转换为应用程序”,然后ASP.NET将查找Web。仅在此文件夹中配置文件(以及bin
目录),而不是网站根目录。
请注意,网站根目录也被视为应用程序范围根目录,因此常见错误消息“Exception in”/“application”。如果你在另一个应用程序根目录中获得YSoD,你会在“/ subFolder”应用程序“消息中看到”Exception。
答案 3 :(得分:0)
就我而言,IIS中的顶级网站的物理路径为:
C:\Users\MyUserName\Documents\My Web Sites
出于某种原因,这意味着IIS拒绝查看其他任何地方,即使我的项目已转换为应用程序。
修复我:
C:\inetpub\wwwroot
然后,我可以为我的应用程序提供任何路径,IIS可以按预期进行操作。