Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net IIS 8-默认文档-找不到资源_Asp.net_.net_Asp.net Mvc 4_Iis_Iis 8 - Fatal编程技术网

Asp.net IIS 8-默认文档-找不到资源

Asp.net IIS 8-默认文档-找不到资源,asp.net,.net,asp.net-mvc-4,iis,iis-8,Asp.net,.net,Asp.net Mvc 4,Iis,Iis 8,我试图理解为什么在浏览虚拟目录时我的默认文档没有出现。如果我像我应该能够的那样浏览该网站,我会得到以下信息: 但是,如果我将页面添加到URL,它会出现: 有人建议删除除真实文档之外的所有默认文档(在IIS中)。我试过了(下图),但没用 为什么IIS在使用根URL(http://localhost/SignalRChat) 这是删除默认文档后web.config的相关部分: <defaultDocument> <files> <re

我试图理解为什么在浏览虚拟目录时我的默认文档没有出现。如果我像我应该能够的那样浏览该网站,我会得到以下信息:


但是,如果我将页面添加到URL,它会出现:


有人建议删除除真实文档之外的所有默认文档(在IIS中)。我试过了(下图),但没用


为什么IIS在使用根URL(
http://localhost/SignalRChat

这是删除默认文档后web.config的相关部分:

<defaultDocument>
    <files>
        <remove value="default.aspx" />
        <remove value="iisstart.htm" />
        <remove value="index.html" />
        <remove value="index.htm" />
        <remove value="Default.asp" />
        <remove value="Default.htm" />
        <add value="ChatPage.cshtml" />
    </files>
</defaultDocument>

这是处理程序部分:

<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*."
       verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
       modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
       preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*."
       verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
       modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
       preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*."
       verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler"
       preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

您的目录浏览似乎在IIS中被禁用。刚刚在IIS中启用了目录浏览。它会解决你的问题

更多详情请访问


希望这会有所帮助

您可以创建网站/应用程序安装程序。它具有设置启动页面选择的选项

因此,如果键入localhost/SignalIRChat,请在安装程序中和安装后将ChatPage.cshtml设置为启动页

您将看到ChatPage.cshtml的内容,而不会在地址栏中显示“ChatPage.cshtml”名称


它会解决你的问题

您需要在
处理程序
部分的末尾添加此
处理程序

<add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />

删除建议的
静态文件
处理程序(如果仍然存在)。

从标记中,看起来您使用MVC和使用razor视图引擎(cshtml)的视图。在MVC中,URL不会直接映射到文档。因此,讨论不应该是关于默认文档、处理程序和IIS配置

URL必须与调用控制器上的操作的已定义路由匹配。然后,此操作将呈现视图(*.cshtml)


尝试修复路由以处理请求。如果您需要更多帮助,您应该使用更多有关管制员和路线的信息更新您的问题。

这可能是MVC问题

您可能需要从索引重定向到SignalChart控制器中的此其他操作。
类似以下内容:

public ViewResult Index()
{
    return View("ChatPage");
}

当您的请求没有指向URL末尾的特定文件名时,404错误的另一个可能原因是您的IIS请求过滤规则拒绝无扩展的请求

要确定这一点,请找出404错误的子代码。 通常是404.7,但可能有一些变化

此外,您还可以通过将
添加到web.config中,尝试显式允许无扩展请求,如下所示:

  <system.webServer>
    <security>
      <requestFiltering>
        <fileExtensions>
          <add fileExtension="." allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
  </system.webServer>


请告诉我它是否有帮助,或者在子代码中发布您的404错误。

您是否要求查看
部分?如果我将ChatPage.cshtml的名称更改为default.cshtml,它将自动显示。您是否可以尝试使用列表下的选项而不是单个页面删除?这些
处理程序是否有原因?因为那些
ExtensionlessUrlHandler
处理程序忽略了您的
DefaultDocument
配置。@Edward今晚我可以试试。我真的认为这不应该是答案。首先,它不起作用。其次,您提供的链接声明:
当您希望客户端浏览器显示一个网页,该网页列出了目录的内容,而请求未指定文档名称,并且IIS无法返回默认文档时,启用目录浏览。如果IIS在目录中找不到与IIS默认文档列表中指定的文件名匹配的文件,或者在IIS中禁用了默认文档功能,则无法返回默认文档。
我不想显示内容,并且指定了默认文档。而且我没有禁用默认文档功能。谢谢,但我不想使用安装程序来完成这项工作。我只是在使用VS.Now中的发布选项,如果您知道安装程序是如何修复的,那会很有帮助,我收到一个错误:
无法添加类型为“add”且唯一键属性“name”设置为“StaticFile”的重复集合项。
我不知道为什么;没有其他名为StaticFile的元素。我修改了答案。请看一看我试过你的建议了。我仍然得到:
找不到资源。
谢谢您的尝试。我已经准备好放弃了,只要把它命名为索引什么的。为我修正了它!谢谢。IIS 8上是否默认启用了请求筛选?(因为我不必在windows 7/IIS 7.5上执行此操作)
  <system.webServer>
    <security>
      <requestFiltering>
        <fileExtensions>
          <add fileExtension="." allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
  </system.webServer>