我正在尝试使EndpointAddress类的实例的参数包含德语变音符号。
例如:
EndpointAddress endpointAddress = new EndpointAddress("net.tcp://süd:8001/EmployeeService");
它总是抛出无法解析给定uri的异常。我尝试用编码值替换变音符号,但出现相同的异常:
以前有人遇到过同样的问题吗?
先感谢您。
最佳答案
解析器可能不知道如何使用internationalized domain names(IDN)。如果要使用这样的主机名,则必须自己进行Punycode编码。我没有用过,但是有一个核心函数IdnMapping.GetAscii看起来很合适-像
EndpointAddress endpointAddress = new EndpointAddress(
"net.tcp://" + IdnMapping.GetAscii("süd") + ":8001/EmployeeService"
);
也许可以工作(如果不能,请原谅我,C#不是我的语言)。