I need my project to run in a multi-tenancy environment. Following the SDK, I put the aspx files in C:\Inetpub\wwwroot\ISV\MyProject. I then put the DLLs in C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly.
我需要我的项目在多租户环境中运行。在SDK之后,我将aspx文件放在C:\ Inetpub \ wwwroot \ ISV \ MyProject中。然后我将DLL放在C:\ Program Files \ Microsoft Dynamics CRM \ Server \ bin \ assembly中。
When I view my page in CRM I get:
当我在CRM中查看我的页面时,我得到:
Could not load type 'MyProject._Default'.
If I put the DLLs in the c:\wwwroot\inetpub\bin folder then the page loads but I don't know (and currently have no means of testing) whether this will work off-line.
如果我将DLL放在c:\ wwwroot \ inetpub \ bin文件夹中,那么页面加载但我不知道(目前无法测试)这是否可以脱机工作。
Additionally, when I load my page with the DLLs in c:\wwwroot\inetpub\bin, it seems to work fine. However, when I add it to an IFRAME in the accounts page using the address /isv/MyProject/default.aspx, the page that loads does not work because it loses the name of the organisation. Does anyone know what URL I should use for multitenancy?
另外,当我在c:\ wwwroot \ inetpub \ bin中加载我的页面时,它似乎工作正常。但是,当我使用地址/isv/MyProject/default.aspx将其添加到帐户页面中的IFRAME时,加载的页面不起作用,因为它丢失了组织的名称。有谁知道我应该用于多租户的URL?
2 个解决方案
#1
I think the best practice for developing CRM extensions meant to be accessed by regular CRM users (ie = each with his/her own CAL) is to store the pages in a folder under the [Installation folder]\CRMWeb\ISV folder. The corresponding dlls though should be placed in the [Installation folder]\CRMWeb\bin folder. For me this turns out to be
我认为开发CRM扩展的最佳实践意味着由常规CRM用户访问(即=每个人都有他/她自己的CAL)是将页面存储在[安装文件夹] \ CRMWeb \ ISV文件夹下的文件夹中。相应的dll应该放在[Installation folder] \ CRMWeb \ bin文件夹中。事实证明,对我而言
C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\MyApp
That is, not in the Server folder, but in the CRMWeb folder.
也就是说,不在Server文件夹中,而是在CRMWeb文件夹中。
As far as the multi-tenancy is concerned, you will have to use a CrmAuthenticationToken parameter when calling the CRM Web Services. This token in turn has a property called OrganizationName. UI-Integrated extensions like IFrames, Buttons etc already provide your pages with this information as a GET parameter. Check this MSDN link to view an example.
就多租户而言,在调用CRM Web服务时,您必须使用CrmAuthenticationToken参数。该令牌又具有名为OrganizationName的属性。像IFrame,Buttons等UI集成扩展已经为您的页面提供了作为GET参数的信息。检查此MSDN链接以查看示例。
#2
As of rollup2 ms recommends on putting your dll inside your own project bin folder. Look for "Custom Code Best Practices" on CRM SDK for more information.
至于rollup2 ms建议将你的dll放在你自己的项目bin文件夹中。在CRM SDK上查找“自定义代码最佳实践”以获取更多信息。
#1
I think the best practice for developing CRM extensions meant to be accessed by regular CRM users (ie = each with his/her own CAL) is to store the pages in a folder under the [Installation folder]\CRMWeb\ISV folder. The corresponding dlls though should be placed in the [Installation folder]\CRMWeb\bin folder. For me this turns out to be
我认为开发CRM扩展的最佳实践意味着由常规CRM用户访问(即=每个人都有他/她自己的CAL)是将页面存储在[安装文件夹] \ CRMWeb \ ISV文件夹下的文件夹中。相应的dll应该放在[Installation folder] \ CRMWeb \ bin文件夹中。事实证明,对我而言
C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\MyApp
That is, not in the Server folder, but in the CRMWeb folder.
也就是说,不在Server文件夹中,而是在CRMWeb文件夹中。
As far as the multi-tenancy is concerned, you will have to use a CrmAuthenticationToken parameter when calling the CRM Web Services. This token in turn has a property called OrganizationName. UI-Integrated extensions like IFrames, Buttons etc already provide your pages with this information as a GET parameter. Check this MSDN link to view an example.
就多租户而言,在调用CRM Web服务时,您必须使用CrmAuthenticationToken参数。该令牌又具有名为OrganizationName的属性。像IFrame,Buttons等UI集成扩展已经为您的页面提供了作为GET参数的信息。检查此MSDN链接以查看示例。
#2
As of rollup2 ms recommends on putting your dll inside your own project bin folder. Look for "Custom Code Best Practices" on CRM SDK for more information.
至于rollup2 ms建议将你的dll放在你自己的项目bin文件夹中。在CRM SDK上查找“自定义代码最佳实践”以获取更多信息。