Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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
Visual studio IIS Express,ASP.NET核心-URI无效:无法分析主机名_Visual Studio_Iis Express_Asp.net Core Webapi - Fatal编程技术网

Visual studio IIS Express,ASP.NET核心-URI无效:无法分析主机名

Visual studio IIS Express,ASP.NET核心-URI无效:无法分析主机名,visual-studio,iis-express,asp.net-core-webapi,Visual Studio,Iis Express,Asp.net Core Webapi,从周末回来,去调试我的web项目,这是一个ASP.NET核心web Api。它开始给我一个错误:无效的URI:无法解析主机名 我可以启动一个新的asp.net核心web api项目,它可以很好地进行调试,因此我非常确定它与我的项目配置有关。有什么想法吗 詹姆斯解决方案: 关闭Visual Studio 删除.vs文件夹 修复:)Jakub的回答确实解决了这个问题,因为它会导致Visual Studio重新生成applicationhost.config。在我的例子中,错误是无法解析标记的值。我有

从周末回来,去调试我的web项目,这是一个ASP.NET核心web Api。它开始给我一个错误:无效的URI:无法解析主机名

我可以启动一个新的asp.net核心web api项目,它可以很好地进行调试,因此我非常确定它与我的项目配置有关。有什么想法吗

詹姆斯解决方案:

  • 关闭Visual Studio
  • 删除.vs文件夹

  • 修复:)

    Jakub的回答确实解决了这个问题,因为它会导致Visual Studio重新生成applicationhost.config。在我的例子中,错误是无法解析
    标记的值。我有以下几点:
    当重新生成时,它是这样的:
    该文件位于“.vs”文件夹的“config”子文件夹中,您不必删除整个目录,只需将
    标记修复/还原为可解析的值即可


    编辑:根据,
    *
    不是有效的主机名。如果希望它绑定到所有主机名,只需将主机留空即可。例如:
    *:80:
    而不是
    *:80:
    表示“端口80上所有主机名的所有网络接口/IP”。

    此错误表示站点的绑定信息格式不正确

    bindingInformation的值由三部分组成

    ip:port:host
    
    以下是一些绑定格式及其结果:

    <!-- Configures the site with a hostname of "www.test.com" on port 80 for the IP address of 192.168.1.10. -->
    <binding protocol="http" bindingInformation="192.168.1.10:80:www.test.com" />
    
    <!-- Configures the site with a hostname of "localhost" on port 80 for the IP address of 192.168.1.10. -->
    <binding protocol="http" bindingInformation="192.168.1.10:80:localhost" />
    
    <!-- Configures the site without a hostname and IP address on port 80. You'd use this setting to make your site directly accessible via any address that the system has, including the localhost address at 127.0.0.1, as well as any and all configured IP addresses. -->
    <binding protocol="http" bindingInformation=":80:" />
    
    <binding protocol="https" bindingInformation="*:443:" />
    <!-- Configures HTTPS bindings for all IP addresses over port 443. -->
    
    
    

    通过以上所有绑定,您可以将协议设置为https,使您的站点只能通过SSL访问。

    我发布了这个答案,因为许多人认为我的评论很有用。谢谢@joshcomley戳我

    希望这个答案能帮助某人:

  • 在解决方案文件夹中,查找名为
    .vs
    的子文件夹(注意,此文件夹具有隐藏属性,因此默认情况下,“文件资源管理器”不会显示该文件夹)
  • 打开
    .vs/config/applicationhost.config
    文件

  • 在文件查找元素(如
    中)中,我遇到了类似的问题,并在管理员模式下运行Visual Studio为我解决了问题。

    我遇到了同样的问题,并在本文中尝试了其他建议,但不起作用。所以我转到了项目属性->调试->Web服务器设置 在那里,我用localhost替换了*并为我解决了这个问题。

    如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接。-@JigneshAnsodariya OP也有同样的问题,并解释了他们是如何解决的。它回答了这个问题。工作正常-但可能必须在以后重新选择解决方案的启动项目。这里有一个重要的注意事项。当您拥有IISExpress行时,它只能作为本地主机访问,不能通过IP地址从网络访问。为了让它通过IP地址工作,一些人建议像你提到的那样写一行:这实际上对我(和你)不起作用,因为VS在重启后开始显示“无效URI:主机名无法解析”错误。对我有效的是:@VeganHunter请将其作为答案发布!它对很多人都非常有用,我相信它会解决OPs问题。我相信
    bindingInformation=“*:8080:*”
    不会解析,但
    ”:8080:“
    会解析,就像
    “:8080:localhost”
    @QuickDanger一样,请尝试在更改后执行iisreset。对我来说很有用。对于任何人来说,这是至少在Windows 10&VS 2017上的答案。我不知道这是否发生了变化,但现在有很多错误信息建议使用“星”语法,IIS Express似乎不再能够解析这种语法。谢谢@VeganHunter!我的问题是试图按路径运行dll。您必须将工作目录设置为publish dir(带有dll和所有支持文件),然后设置为dotnet.dll,它才能工作这是一种正确的方法,因为它也可以处理.net核心项目(它们没有名为
    .vs/config/applicationhost.config
    的文件,而是
    launchSettings.json
    ——至少我们的项目没有)。