![]() |
#1 |
Участник
|
![]()
Коллеги, подскажите...
Есть расширение для CRM 4.0, точнее сервис. Файлик Service.asmx лежит в папке C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\MyService\ Библиотека от этого сервиса лежит в папке bin CRM. В общем все разложено как рекомендует SDK. Соответственно к сервису обращаюсь по адресу http://server:port/MyOrg/ISV/MyService/Service.asmx В сервисе мне нужно обратиться к файлику, лежащему рядом с файлом Service.asmx, для этого нужно узнать его физический путь. А метод MapPath мне выдает адрес C:\Program Files\Microsoft Dynamics CRM\CRMWeb\MyOrg\ISV\MyService\ который некорректен, из за того, что перед ISV вставлено имя организации. Проверил все доступные в Request пути и они все с именем организации. |
|
![]() |
#2 |
Чайный пьяница
|
Попробуйте на лету получить путь таким образом:
string path = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("WebSitePath")) + "\ISV\MyService\";
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#3 |
Moderator
|
А чем плох URL или относительный путь? В чем задача?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#4 |
Участник
|
Цитата:
X++: path = Context.Request.PhysicalApplicationPath + "ISV\\MyService\\"; Пока выкрутился вот так: X++: path = Context.Request.MapPath("XSLTFile.xslt").Remove(Context.Request.PhysicalApplicationPath.Length, orgName.Length + 1); А делать так приходиться потому, что методу XmlReader.Create нужен физический путь, по виртуальному там с правами косяк. |
|