1

我已经实现了一个 CRM 2011 插件,它在创建时向主电话记录发送短信。但是我收到一条错误消息“无法连接到远程服务器”。下面是插件中使用的一段代码。

    public static void send(string uid, string password, string message, string no)
    {
        HttpWebRequest myReq =
        (HttpWebRequest)WebRequest.Create("http://ubaid.tk/sms/sms.aspx?uid=" + uid + "&pwd=" + password +
        "&msg=" + message + "&phone=" + no + "&provider=way2sms");

        HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse(); //Getting error in this line
        System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
        string responseString = respStreamReader.ReadToEnd();
        respStreamReader.Close();
        myResp.Close();
    }

解决此错误的解决方案是什么?

4

1 回答 1

3

如果您将此插件作为沙盒运行,默认情况下对出站 URI 模式有一些限制

这些默认的 Web 访问限制在运行 Microsoft.Crm.Sandbox.HostService.exe 进程的服务器上的注册表项中定义。系统管理员可以根据业务和安全需要更改注册表项的值。服务器上的注册表项路径是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\SandboxWorkerOutboundUriPattern

键值是定义 Web 访问限制的正则表达式字符串。默认键值为:

"^http[s]?://(?!((localhost[:/])|([.*])|([0-9]+[:/])|(0x[0-9a-f ]+[:/])|(((([0-9]+)|(0x[0-9A-F]+)).){3}(([0-9]+)|(0x[ 0-9A-F]+))[:/]))).+";

通过更改此注册表项值,您可以更改沙盒插件允许的 Web 访问。

于 2012-07-05T13:19:53.377 回答