【问题标题】:Unable to connect to the remote server in CRM 2011 Plugin无法连接到 CRM 2011 插件中的远程服务器
【发布时间】:2012-07-05 06:33:48
【问题描述】:

我已经实现了一个 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();
    }

解决这个错误的方法是什么?

【问题讨论】:

  • 不确定它是否能解释您的问题,但您应该查看是否需要对注入 URL 的各种参数进行 URL 编码/转义。另外,您确认是否可以手动检索相关网址?
  • 我在控制台应用程序中运行相同的代码,它发送短信没有任何错误(即使手动粘贴 URL)。
  • 能否从失败的请求中获取更多错误信息?另外,你能发布完整的错误/异常信息吗?
  • 内部异常:“无法建立连接,因为目标机器主动拒绝它 118.139.172.1:80”

标签: c# dynamics-crm dynamics-crm-2011 dynamics-crm-online


【解决方案1】:

如果您将此插件作为沙盒运行,则有some limitations by default on the Outbound URI pattern

这些默认的 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 沙盒插件的访问权限。

【讨论】:

  • 如果插件没有沙盒化怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 2011-04-29
相关资源
最近更新 更多