Asp.net mvc 3 Abs返回Azure上的域,而不是域注册器上的CNAME记录

Asp.net mvc 3 Abs返回Azure上的域,而不是域注册器上的CNAME记录,asp.net-mvc-3,azure,Asp.net Mvc 3,Azure,我在http://[some GUID].cloudapp.net上有一个Windows Azure应用程序 我使用GoDaddy上的CNAME记录将mydomain.com指向此应用程序。除了一件事,一切都很好。我通过此应用程序发送电子邮件,并使用 @Url.Abs(Url.Action("Action", "Controller")) Url.Abs始终在http://[some GUID].cloudapp.net域之前,而不是mydomain.com。我还没有发现这个帮助程序的重载,它

我在http://[some GUID].cloudapp.net上有一个Windows Azure应用程序

我使用GoDaddy上的CNAME记录将mydomain.com指向此应用程序。除了一件事,一切都很好。我通过此应用程序发送电子邮件,并使用

@Url.Abs(Url.Action("Action", "Controller"))

Url.Abs始终在http://[some GUID].cloudapp.net域之前,而不是mydomain.com。我还没有发现这个帮助程序的重载,它允许我将域名从web.config或类似的东西中拉出。我如何告诉MVC3使用mydomain.com?

我很困惑,因为我不知道应用程序怎么可能知道.cloudapp.net域。CNAMEs不是那样工作的。。。应用程序只能看到“mydomain.com”


您确定您的CNAME设置正确吗?它不仅仅是转发或“屏蔽”之类的吗?

不,这些是在服务器上生成的传出URL。服务器认为它是guid.cloudapp.net,因此使用该名称。当然,世界上其他地方都可以看到mydomain.com,但是Azure没有CNAME记录,GoDaddy有。我正在Azure中寻找一些设置,甚至是一个允许我注入不同域名的不同调用。我要告诉你的是,你的web应用程序不知道。cloudapp.net。你可以调用的唯一API就是服务管理API,如果你不给它一个API证书,你的web应用程序就不能调用它。所以我想说的是,“.cloudapp.net”字符串必须来自你的应用程序之外。通常,它会作为web请求上的主机头输入,但如果您使用的是CNAME,主机头的值将始终是您浏览到的域(而不是CNAME的值)。