【问题标题】:Unable to call web url from Dynamics 365 plugin (error)无法从 Dynamics 365 插件调用 Web url(错误)
【发布时间】:2020-09-02 08:51:18
【问题描述】:

我们有一个 Dynamics 365 实例,我们正在为其编写插件。我们在调用 Azure 函数时遇到问题,我怀疑是因为我需要允许 Dynamics IP 地址通过。所以我们编写了代码来调用一个返回 IP 地址的 http 网站。这也会引发错误。似乎在插件内部进行 HTTP 调用的任何尝试都会产生错误。我在网上阅读的每个指南都说,如果我们有 URL,我们可以使用 HTTP 和 HTTPS,但它就是行不通。我们已经为 HTTP 调用尝试了几个不同的类。对于我的功能,我已经复制了代码并且它可以工作。当它抛出插件时,错误不是 IP 无效(这是我在本地添加我的 IP 之前得到的),所以我确信某些东西在进行 HTTP 调用之前会阻止它们

【问题讨论】:

    标签: plugins microsoft-dynamics


    【解决方案1】:

    我不确定您的 WebURL 是否包含 IP 地址或 DNS。如果它不包含 DNS,则建议使用带有 DNS 的 WebURL。 但以下是沙盒模式下插件的限制:

    • 没有“共享”或“帮助”程序集的机制 - 必须使用 ILMerge
    • 以部分信任执行
    • 2 分钟超时
    • 只允许 HTTP/HTTPS 协议
    • 无法通过 IP 访问网络(仅限 DNS)
    • 资源使用/管理:因为插件在 CRM 资源中运行 池,将资源密集型任务推到 CRM 之外会降低总体 在系统上加载

    此外,您可以通过以下链接查看另一种将 Azure 函数用作 D365 插件中的 Web 挂钩的方法。

    https://www.akaes.com/blog/writing-microsoft-dynamics-365-plug-ins-in-azure-functions/

    【讨论】:

    • 公平的回应,我应该说。我知道这个限制。这是一个 URL,而不是 IP 地址。我已经阅读了所有这些在谷歌上搜索我的问题的内容,我认为我们没有违反任何这些。当实际上所有代码都点击 GET(http,而不是 https)以取回我需要打开以使用我的 Azure 功能的 IP 地址时,就会发生错误。
    • 由于我们能得到的唯一输出是异常文本,我正在这样做。这是整个函数,它给出了一个错误 HttpClient c = new HttpClient(); var resp = c.GetAsync("checkip.dyndns.com/").Result; var ip = resp.Content.ReadAsStringAsync().Result; throw new Exception(ip); 我和一个朋友一起工作,我是 C# 人,他是 Dynamics。我我不告诉你错误,因为我不知道,但我确信它表明与进行 HTTP 调用的权限有关。
    • 感谢您提供更多信息。我尝试了您上面提到的代码,它在插件中对我来说效果很好。我能够检索 IP 并将其保存在 D365 实体的属性中。我相信您一定在您使用的 URL 中提到了协议,即 HTTP,因为这是我必须做的唯一更改,因为我可以看到它从 cmets 中删除了协议。
    • 我没有发现我们没有明确表示,现在尝试:)
    • 好的,在 URL 中需要 HTTP 是我们拨打电话问题的解决方案,所以谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2021-02-19
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多