在CRM 2016 Web目录下运行自定义asp.net应用程序时出现404错误

时间:2017-02-13 09:55:02

标签: asp.net dynamics-crm dynamics-crm-2016

我正在尝试使用CRM 2016的新服务器上的CRM网络目录(即C:\ Program Files \ Microsoft Dynamics CRM \ CRMWeb \)下运行自定义Web应用程序。相同的设置工作正常CRM 2013服务器,我们正在尝试升级。

路径是正确的,因为当我从我的自定义应用程序中删除任何DLL时,我得到关于丢失的DLL的正确的ASP.net错误。但是只要所有DLL都正确,我的自定义Web应用程序就会出现404错误。 404 error

2 个答案:

答案 0 :(得分:2)

我知道这不是一个好消息,但不支持将WWW应用程序放在CRM Webapp目录中 - 您可以阅读它here

  

不支持在Microsoft Dynamics 365网站内为任何VDir创建Internet信息服务(IIS)应用程序,特别是在ISV文件夹中。不再支持\ ISV文件夹。

我可以想象CRM 2016中的一些httpmodule正在捕获对您网站的请求。

答案 1 :(得分:0)

添加到笔的评论您需要将现有的Web应用程序重写为独立的Web应用程序,并使用CRM SDK访问crm。

https://msdn.microsoft.com/en-us/library/gg334357(v=crm.6).aspx

我确实已经将其中的一部分迁回CRM4到CRM2011,通常这是一种非常轻松的体验。

要记住的基本事项是:

  1. 将网站配置为使用Windows身份验证(以便我们识别webextension的用户)

  2. 按域名查找systemuser以获取其系统用户ID,然后在必要时模拟Web应用程序。 (https://msdn.microsoft.com/en-us/library/gg309629.aspx

  3. 在CRM和您的网站之间允许跨站点脚本 这允许您使用来自CRM的JavaScript与Web应用程序托管的iframe或休息服务进行交互

  4. 
    
    <httpProtocol>
       <customHeaders>
          <add name="Access-Control-Allow-Origin" value="http://crmurl" />
          <add name="Access-Control-Allow-Credentials" value="true" />
          <add name="Access-Control-Allow-Headers" value="Origin, Authorization" />
          <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
          <add name="Access-Control-Expose-Headers" value="WWW-Authenticate" />
        </customHeaders>
    </httpProtocol>
    &#13;
    &#13;
    &#13;