c# - 带有 net.tcp 的 EndpointAddress 中的德语变音符号

标签 c# wcf

我正在尝试创建 EndpointAddress 类的实例,其中参数包含德语变音符号。

例如:

EndpointAddress endpointAddress = new EndpointAddress("net.tcp://süd:8001/EmployeeService");

它总是抛出无法解析给定 uri 的异常。我试图用编码值替换变音符号,但我得到了同样的异常:

Invalid URI: The hostname could not be parsed.

有没有人遇到过同样的问题? 提前谢谢你。

最佳答案

解析器可能不知道如何使用 internationalized domain names (国际化域名)。如果你想拥有这样的主机名,你将不得不自己进行 Punycode 编码。没用过,不过有个核心功能IdnMapping.GetAscii看起来很合适——像

EndpointAddress endpointAddress = new EndpointAddress(
    "net.tcp://" + IdnMapping.GetAscii("süd") + ":8001/EmployeeService"
);

也许会工作(如果不能,请原谅我,C# 不是我的语言)。

关于c# - 带有 net.tcp 的 EndpointAddress 中的德语变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982252/

相关文章:

c# - 什么是按顺序运行 C# 任务的有效方法

c# - 如何克服自定义文档属性大小限制

.net - .NET中的WCF是什么?

.net - 在ASP.NET Core网站中使用Reporting Services(SSRS)作为引用

c# - 为我的 WCF 应用程序启用 SSL 时出现问题

c# - 当您说 C# 是面向组件的语言时,这意味着什么?

c# - 有没有我可以用来从困惑的 HTML 中提取元素的类

xml - 根据 XML 请求更改 WCF 命名空间

c# - WCF 与 Java Web 服务通信

c# - XAML 中 Windows 8 商店应用程序中的 TreeView