Asp.net mvc Windows Azure网站中通配符子域的协议绑定错误

Asp.net mvc Windows Azure网站中通配符子域的协议绑定错误,asp.net-mvc,azure,dns,azure-web-app-service,Asp.net Mvc,Azure,Dns,Azure Web App Service,我有多租户MVC应用程序作为Azure网站运行。租户通过使用子域进行解析。因此,租户A可以通过以下方式解决。只要我在我的DNS服务器上为每个租户创建单独的CNAME记录,这就可以很好地工作。然而,我不想这样做 因此,我成功地将通配符a记录*.myapp.com添加到我的DNS记录中,并在azure中添加了自定义域名*.myapp.com。所以现在我可以使用,它将解决我的azure网站ok。那太棒了,我想我已经准备好了 直到我尝试浏览到一个使用AJAX调用WCF服务的页面(WCF服务是网站内部的)

我有多租户MVC应用程序作为Azure网站运行。租户通过使用子域进行解析。因此,租户A可以通过以下方式解决。只要我在我的DNS服务器上为每个租户创建单独的CNAME记录,这就可以很好地工作。然而,我不想这样做

因此,我成功地将通配符a记录*.myapp.com添加到我的DNS记录中,并在azure中添加了自定义域名*.myapp.com。所以现在我可以使用,它将解决我的azure网站ok。那太棒了,我想我已经准备好了

直到我尝试浏览到一个使用AJAX调用WCF服务的页面(WCF服务是网站内部的)。有一堆WCF服务,它们都抛出了一个500

System.UriFormatException:协议绑定“*:80:*.myapp.com”对“http”无效。这可能是因为端口号超出范围

如果我从Azure中的自定义域列表中删除*.myapp.com,那么我不会得到错误,但我的通配符子域不再被定向到网站,我从Azure获得404

我尝试了一些WCF服务绑定的方法,包括尝试所有HostNameComparisonMode选项StrongWildcard、WeakWildcard和Exact

我希望以前有人遇到过这个问题。有很多关于让通配符子域工作的帖子,但是没有任何关于我使用WCF服务的问题


提前感谢

这可能是由于将通配符自定义域名添加到站点(在Azure网站服务中)时,在applicationhost.config中创建了以下形状的绑定:80:.myapp.com。我们将进行调查并尝试修复此问题

同时,可能值得尝试清除web.config中的bindings部分并重新创建表单的绑定


让我知道这是否有效。

要补充哲的答案,这里是如何做到的:

在“站点”文件夹下创建applicationHost.xdt文件,并将下面的内容复制到其中 ()



在azure中,对于自定义域名,请添加*而不是*.myapp.com,这样应该可以使用。

您好。我把它放在待办事项列表的底部,因为我可以手动解决它。我已经清除了我的列表,并尝试了一下,但它似乎已经在azure中得到了修复,因为当我将*.myapp.com添加回azure网站中的自定义域列表时,问题就消失了。我假设这是微软修复的。你和那件事有关系吗?它现在工作得很好。
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.applicationHost>
    <sites>
      <site name="%XDT_SITENAME%" xdt:Locator="Match(name)">
       <bindings>
          <binding protocol="http" bindingInformation="'*:80:*.myapp.com" xdt:Locator="Match(bindingInformation)" xdt:Transform="Remove" />
        </bindings>
      </site>
    </sites>
  </system.applicationHost>
</configuration>