我有一个动作方法,它接收IP作为参数。
[HttpGet]
[Route("lookup/{ipAddress}")]
public string Get(string ipaddress)
{
return ipaddress;
}问题是,当在以: (冒号)结尾的参数中使用IPV6压缩时,调用不会到达操作,并得到500内部服务器错误,但没有详细信息。
在使用VS 2013的本地计算机上运行良好,但当作为AppService部署到Azure时,IPV6会给出内部服务器错误。
已添加requestPathInvalidCharacters
<system.web>
<compilation debug="true" targetFramework="4.5" />
<customErrors mode="Off" />
<httpRuntime targetFramework="4.5" requestPathInvalidCharacters="<,>,*,%,&,\,?" />
</system.web>并将
<modules runAllManagedModulesForAllRequests="true">在本地IIS和IIS express上运行良好,但在部署到Azure网站时api不起作用。
发布于 2016-04-19 23:32:31
你能不能试试:
将配置字符串更改为<...requestValidationMode="2.0“requestPathInvalidCharacters="*,:,&,\”...>,发生了什么?这个问题在互联网上被讨论过,并且有一些解决方法,例如:
Using a colon (:) in a url with ASP.NET/IIS
2)将其编码/解码为另一个unicode字符
https://stackoverflow.com/questions/36710124
复制相似问题