根据 MSDN http://msdn.microsoft.com/en-us/library/system.net.ipaddress.tryparse(v=vs.100).aspx, ipString 不能包含 Unicode 字符,否则将引发 ArgumentException。
是否有人能够在本地控制台应用程序中进行复制,我尝试了多个 unicode 字符但无法复制。
我们在一些服务器日志中看到了类似的错误:
无法编组:遇到无法映射的角色。但无法记录哪个输入破坏了代码。
更新,堆栈跟踪的一部分:System.ArgumentExceptionMessage0:无法编组:遇到不可映射的字符。; 在 System.String.ConvertToAnsi(Int32 iMaxDBCSCharByteSize, Boolean fBestFit, Boolean fThrowOnUnmappableChar, Int32& cbLength)--在 System.StubHelpers.CSTRMarshaler.ConvertToNative(Int32 flags, String strManaged, IntPtr pNativeBuffer)-- 在 System.Net.UnsafeNclNativeMethods.OSSOCK。 WSAStringToAddress(String addressString, AddressFamily addressFamily, IntPtr lpProtocolInfo, Byte[] socketAddress, Int32& socketAddressSize)-- 在 System.Net.IPAddress.InternalParse(String ipString, Boolean tryParse)-- 在 System.Net.IPAddress.TryParse(String ipString, IP地址&地址)--