我有一个邮件服务器,我正在尝试连接到交换Web服务。如果我ping服务器,它可以工作,但在代码中提供时会得到UriFormatException
。
在命令提示符下工作但在c#
中失败的网址myserver.mydomain.com
myserver
192.168.100.1
(我服务器的IP)可以解析为URI但无法ping通的网址
http://myserver.mydomain.com
http://192.168.100.1
我也尝试在开头添加\\
,但没有运气。
在网络上连接到我们的域时,我们确实有一些奇怪的设置,我认为这是导致http://myserver.mydomain.com
ping失败的原因。如何将基本网址(不包含http://)转换为对c#Uri
有效的字符串?
代码:
var serverUrl = "myserver.mydomain.com"; //base string I'd like to use
_exchange.Url = new Uri(serverUrl); //causes UriFormatException: Invalid URI: The format of the URI could not be determined.
答案 0 :(得分:1)
要使用UriBuilder
var builder = new UriBuilder();
builder.Host = "myserver.mydomain.com";
var uri = builder.Uri;
请注意,您所谓的“uri”(myserver.mydomain.com)实际上是“主机名”或“DNS名称”,这是解析为IP而非用于Ping的内容。 “http://myserver.mydomain.com”是特定协议(HTTP)的绝对Uri。