在CRM 4.0中,我们可以将动态内容(aspx)放在CRM中的ISV文件夹中,创建单独的应用程序,但具有CRM的安全性和相对URL,例如,可以使用iframe中的自定义360视图链接沿着
行的相对URL/ISV/CrmMvcApp/Account.aspx/Overview?id = ....
在CRM 2011中,不推荐使用ISV文件夹,Microsoft对如何以受支持的方式(MSDN gg309571: Upgrade Code in the ISV folder to Microsoft Dynamics CRM 2011)过渡到这一点有一些指导。他们说:
对于Web资源功能无法满足的方案,请使用自己的web.config在自己的应用程序池中创建Web应用程序。
我正在阅读本文的方式(加上支持/不支持的指导原则)是我们需要在IIS中使用自己的绑定单独的网站,因为您不允许在标准CRM应用程序下添加虚拟目录等。这很不幸,并且不允许自定义和站点地图中的相对路径/ URL。这很麻烦,尤其是在从DEV,TEST和/或PROD导出和导入解决方案时。
编辑:与其他来源确认我对指南的理解是正确的,因为这也列在不受支持的更改列表中。虚拟文件夹和Web应用程序应与默认的CRM网站完全分开。
不支持在Microsoft Dynamics CRM网站内为任何VDir创建Internet信息服务(IIS)应用程序,特别是在ISV文件夹中。
答案 0 :(得分:1)
如果您主要需要访问CRM数据/记录,请查看使用jScript Web资源。您可以使用REST OData服务执行“大多数”CRUD操作。如果您使用JQuery来解析JSON,那么它非常高效。
答案 1 :(得分:1)
我找到了一个类似于javascript重定向的解决方案,无需客户端执行,只需配置一次环境详细信息(servername,port)。可以轻松添加其他逻辑。
该解决方案会在自定义项中创建依赖关系,但不会创建类似环境,并且可以用于非托管和托管解决方案。
解决方案是将文件Redirect.aspx
放在ISV文件夹中。代码不以任何方式与CRM交互并且属于受支持的准则,但解决方案不是未来证明,因为Microsoft不推荐使用ISV文件夹。
Redirect.aspx
会自动传递任何传递的参数,因此可以使用或不使用实体标识符等等。
用法:
在自定义中,例如对于iframe,请使用以下内容作为源:
/ISV/Redirect.aspx?redirect=http://SERVERREPLACE/CustomMvcApp/SomeControllerAction
以下是Redirect.aspx
<%@ Page Language="C#" %>
<html>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
// must be customized for each environment
const string ServerBaseName = "appserver1:60001";
const string UrlParameterName = "redirect";
const string ReplacePattern = "SERVERREPLACE";
var parameterUrl = Request.Params[UrlParameterName].Replace(ReplacePattern, ServerBaseName);
var queryStringBuilder = new StringBuilder();
foreach (var key in Request.QueryString.AllKeys)
{
if (key == UrlParameterName)
{
continue;
}
queryStringBuilder.Append(!(queryStringBuilder.Length > 0) ? "?" : "&");
queryStringBuilder.Append(key + "=" + Request.QueryString[key]);
}
var completeRedirectString = parameterUrl + queryStringBuilder;
Response.Redirect(completeRedirectString);
}
</script>
<head>
<title>Redirecting</title>
</head>
</html>
答案 2 :(得分:0)
根据您的问题,不是“相对网址”,但我使用的解决方案是在配置实体中存储“存根”或“根”网址,并在运行时在JScript中读取这些记录,以确定您的完全限定目标自定义链接。