AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2010, 00:51   #1  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Вытащить приаттаченные файлы из CRM по запросу
Такой вопрос,

в CRM в примечаниях можно вкладывать вложения, после чего они сохраняются в таблице AnnotationBase. Что характерно как-то странно они там сохраняются т.к. непонятно в базе они хранятся или на сервере.

Мои предположения где может храниться файл:

На сервере

В этом случае в базе в таблице в одной из колонок должна быть сохранена ссылка на файл или его идентификатор чтобы можно было его потом найти и подгрузить.
Облазил всю базу CRM и не нашел ни одной ссылки. кроме 2х интересных полей:

MimeType, DocumentBody
Причем хочу заметить что если в MimeType заголовок файла сохранен, то в DocumentBody содержимое файла не сохранено, т.к. если бы содержимое всех файлов в закодированном виде хранилось в этой колонке тип её был бы как минимум BLOB, а длинна содержимого различных файлов (по размеру) должна отличаться.

Содержимое же колонки DocumentBody для файлов разных размеров одинаковое (по длинне символов) что наводит на странные мысли. Значит это ссылка либо какой-то идентификатор. Вопрос какой? и где его применить?

Идем дальше..

Открыл форму с примечаниям (точнее код IFRAME содержащее примечания) с вложенным файлом и через IE Developer ToolBar выцепляю код слоя с фалом примечания, т.к. при клике у меня открывается файл - значит истоки места откуда эти файлы скачиваются нужно здесь.

Нахожу такой код

X++:
<span class="attachment" title="Щелкните для открытия" attachmentId="{FF896FAA-59F3-DF11-BB70-003048BE732D}" attachmentType="5" merchantId="{E07FE863-0126-DF11-A3C0-003048BE732D}" userId="{A0CB17C4-AD26-DF11-9050-003048BE732D}"  url="/OrgName/Activities/Attachment/download.aspx""  WRPCTokenUrl="&amp;CRMWRPCToken=e0GDXOMxEd%2b7cAAwSL5zLYi1nc0zLu8zyT7PKCtqj%2bgRbiPPRbvx5t1VVY8eEVZl&amp;CRMWRPCTokenTimeStamp=634257120771013998"><img alt="" src="/_imgs/attachments/16_generic.gif" align="absmiddle" border="0">&nbsp;833.rtf</span><span class="ms-crm-Attachment-SizeSpacer"></span>
где нужно обратить внимание на следующее:
1) Путь к странице с которой скачиваются файлы:
/OrgName/Activities/Attachment/download.aspx - уже хорошо.

Осталось определиться с параметрами которые нужно передать на этот скрипт, чтобы получить файл:
2) Напрашивается GUID примечания (AnnotationId) из таблицы AnnotationBase
{FF896FAA-59F3-DF11-BB70-003048BE732D} в форме аттрибут AttachmentId

3) Также Тип объекта (по нашему сущности в примечании которой мы работаем)
5 (колонка ObjectTypeCode из этой же таблицы) в форме аттрибут AttachmentType

4) GUID Пользователя (либо того который открывает примечание либо того кто его создал), в данном случае в обеих ролях выступаю я один поэтому это сейчас не важно:
{A0CB17C4-AD26-DF11-9050-003048BE732D} в базе Колонка OwningUser в форме аттрибут UserId

5) за что отвечает аттрибут merchantId на форме - я так и не разобраля, т.к. GUID объекта сущности организации по отношению к которой я создавал примечание отличается от всех GUID-ов используемых в форме.

6) Два неизвестных аттрибута:
а) CRMWRPCToken=e0GDXOMxEd%2b7cAAwSL5zLYi1nc0zLu8zyT7PKCtqj%2bgRbiPPRbvx5t1VVY8eEVZl
б) CRMWRPCTokenTimeStamp=634257120771013998

Как они генерируются и где используюся мне понять не удалось.

Теперь собственно развязка:
Если запустить этот URL и передать в него все эти параметры - файл не открывается!!! Т.е. Алгоритм и механизм по которой по клику на вложенный файл в примечании CRM выдает закачанный файл для скачки - не понятен.

Также не понятно как генерировать эти Токены в случае если нужно создать страницу, в которую хотелось бы передавать просто GUID аннотации (примечания) и чтобы в ответ предлагалось скачать файл.

Похожее решение я нашел вот тут:
http://mmcrm.ru/?p=1138

Я не буду цитировать весь код, только важную инфу:
Нужен этот код:

X++:
using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.Sdk.Query;
using Microsoft.Crm.SdkTypeProxy;
using System.Net;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Web.Services.Protocols;
using Microsoft.Win32;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            // Выполняем код под юзвером открывашем страницу
            using (new CrmImpersonator())
            {
                // Проверяем что через URL передан параметр guid, иначе прекращаем выполнение
                if (Request.QueryString["guid"] == null) return;

                // Настраиваем CRM Service
                CrmAuthenticationToken token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, "superfirma");
                CrmService service = new CrmService();
                service.CrmAuthenticationTokenValue = token;
                service.UseDefaultCredentials = true;
                // Вытаскиваем имя СRM сервера из регистра Windows
                service.Url = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("ServerUrl")) + "/2007/crmservice.asmx";
                // Кэшируем credentials, чтобы каждый запрос не проходил повторно аутентификацию
                service.PreAuthenticate = true;

                // Запрашиваем примечание с GUID'ом переданным через URL
                Guid annotationId = new Guid(Request.QueryString["guid"]);

                // Нам нужны следующие колонки: имя файла, содержимое файло и его тип
                ColumnSet cols1 = new ColumnSet();
                cols1.Attributes.Add("filename");
                cols1.Attributes.Add("documentbody");
                cols1.Attributes.Add("mimetype");

                // Отправляем запрос в CRM Service
                annotation annotationAttachment = (annotation)service.Retrieve(EntityName.annotation.ToString(), annotationId, cols1);

                // Перекодируем содержимое файла хранящееся в БД CRM из кодировки Base64 в byte...
                byte[] fileContent = Convert.FromBase64String(annotationAttachment.documentbody);
                // ... а из byte в string
                string s = System.Text.Encoding.Default.GetString(fileContent);
                // Обнуляем изначальный ответ и возвращяем ответ в виде файла
                Response.ClearContent();
                Response.AddHeader("content-disposition", "attachment; filename=" + annotationAttachment.filename);
                Response.ContentType = annotationAttachment.mimetype;
                Response.BinaryWrite(fileContent);
                Response.End();
            }
        }
        catch (SoapException sexc)
        {
            throw new Exception(sexc.Detail.InnerText);
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }

    }
}

по мнению автора если передать в этот скрипт GUID вернуться должен приаттаченный файл, я создал в корневой папке этот скрипт. Передаю туда GUID влоенного файла в CRM и получаю ошибку - файл не скачиваетя.

Возможно из-за неверных настроек web.config, т.к. из статьи не понятно каким образом нужно внести эти добавления в существующий конфиг, всё удалить и вставить этот маленький кусочек:
X++:
<?xml version="1.0"?>
<configuration>
  <appSettings/>
  <connectionStrings/>
  <system.web>
    <httpModules>
      <add name="MapOrg" type="Microsoft.Crm.MapOrgEngine, Microsoft.Crm, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="CrmAuthentication" type="Microsoft.Crm.Authentication.AuthenticationEngine, Microsoft.Crm, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
    <identity impersonate="true"/>
    <compilation debug="true">
      <assemblies>
        <add assembly="Microsoft.Crm.Sdk, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="Microsoft.Crm.SdkTypeProxy, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
  </system.web>
</configuration>
или куда то в особенное место нужно это поставить - непонятно. Возможно ошибки из-за этого.

Подскажите пожалуйста как мне решить эту задачу с выгрузкой приаттаченных файлов из CRM по запросу?

Заранее спасибо!
Старый 19.11.2010, 01:02   #2  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Если запустить этот скрипт без конфига вообще получаем такую ошибку:

X++:
Microsoft CRM Error Report: 
Error Description:
CS1513: } expected

Error Details:
c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx(19): error CS1513: } expected

Full Stack:
[HttpCompileException: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx(19): error CS1513: } expected]
   at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
   at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
   at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Other Message:

Error Number:

Source File:
c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx

Line Number:
19
 
 
Date: 11-19-2010

Time: 01:00:58

Server: crmsrv02
 
 
Request URL:
http://crmsrv02:5555/Files/notes.aspx?guid={07A71E60-2EF3-DF11-BB70-003048BE732D}
т.е. в папке Files

веб конфиг отсутствует.

в чем ошибка подскажите пожалуйста.
Было бы очень хорошо отладить этот скрипт чтобы не придумывать решение проблемы с нуля.
Старый 19.11.2010, 01:09   #3  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
А если в папку Files
скопировать конфиг CRM-а 4.0
То получаем такую ошибку


X++:
Server Error in '/' Application.
--------------------------------------------------------------------------------

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.

Source Error: 


Line 50: 				</assemblies>
Line 51: 			</compilation>
Line 52: 			<authentication mode="Windows" />
Line 53: 			<identity impersonate="true" />
Line 54: 			
 

Source File: C:\Program Files\Microsoft Dynamics CRM\CRMWeb\files\web.config    Line: 52 



Show Additional Configuration Errors:


It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS. (C:\Program Files\Microsoft Dynamics CRM\CRMWeb\files\web.config line 57)
                      
 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3614
Старый 19.11.2010, 01:44   #4  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
1. Вы просто создали aspx страницу?
2.
Цитата:
я создал в корневой папке этот скрипт
- в корневой папке веб-сайта CRM?
3. какой веб-конфиг вы изменили?

Я предполагаю, что автор блога делал следующие шаги:
1. Создавал новый веб-сайт
2. Публиковал данный веб-сайт в папке CRM_Server\ISV\ваш_веб-сайт
3. изменял веб-конфиг своего созданного веб-сайта.

Попробуйте эти шаги.
Думаю, что slivka_83 завтра все расскажет
Старый 19.11.2010, 09:52   #5  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Цитата:
Сообщение от Bondonello Посмотреть сообщение
Я предполагаю, что автор блога делал следующие шаги:
1. Создавал новый веб-сайт
2. Публиковал данный веб-сайт в папке CRM_Server\ISV\ваш_веб-сайт
3. изменял веб-конфиг своего созданного веб-сайта.
угу все верно
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 19.11.2010, 10:25   #6  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
В корневой папке CRM
а именно

c:\Program Files/Microsoft Dynamics CRM/CRM_Web

я создал папку

Files

в ней

создал файл

notes.aspx
и web.config с тем содержимым что указано на сайте mmcrm.ru

X++:
Microsoft CRM Error Report: 
Error Description:
CS1513: } expected

Error Details:
c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx(19): error CS1513: } expected
т.е. скрипт не работает.

ПО сути в папке Files у меня 2 файла (ваш веб.конфиг и aspx страница к которой я обращаюсь)

Вопрос, там написано ещё про какой то Default.aspx.cs (что за CS??) и папку bin и прочее, этого у меня нет.
Т.к. моя Visual Studio 2008 при сохранении Defaults.aspx и web.config выдает 96 Errors и не дает компилировать.

Поэтому скрипт notes.aspx - свой я писал в блокноте, как и веб.конфиг.

Последний раз редактировалось Dicora; 19.11.2010 в 10:28.
Старый 19.11.2010, 10:32   #7  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
И обязательно ли создавать новую папку в ISV или можно в любом месте??
И ошибка может быть из-за отсутствия .aspx.cs и папки bin?
за что они отвечают и как мне их создать??

Заранее спасибо!
Старый 19.11.2010, 10:42   #8  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Цитата:
Сообщение от Dicora Посмотреть сообщение
И обязательно ли создавать новую папку в ISV или можно в любом месте??
И ошибка может быть из-за отсутствия .aspx.cs и папки bin?
за что они отвечают и как мне их создать??

Заранее спасибо!
Если в кратце то да если кастомный сайт размещается внутри CRM то обязательно в ISV.

Никаких файлов создавать ручками не нужно - только папку в которой они будут размещаться. Затем, после создания сайта в VS, перейдите Build - Publish Web Site - и укажите путь куда будет публиковаться сайт.
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
За это сообщение автора поблагодарили: Dicora (1).
Старый 19.11.2010, 11:44   #9  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Ну я могу сказать вот что:
Открыл Visual Studio 2008,

New Project => Visual Basic => Web => ASP.NET Web Application

открылось окно где я могу писать код .NET
в страницу Default.aspx

я вписал тот код

в код web.config

вписал код web.config-а с сайта mmcrm.ru

Нажал Build => Publish Default.aspx
выбрал путь

C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\

и нажал Build

VS не ругнулся и ошибок компиляции не было.

При запуске страницы

http://localhost/ISV/Files/Default.apsx?guid={ИД-аннотации из базы}
пишет ошибку:

X++:
Microsoft CRM Error Report: 
Error Description:
CS1513: } expected

Error Details:
c:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\Default.aspx(20): error CS1513: } expected

Full Stack:
[HttpCompileException: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\Default.aspx(20): error CS1513: } expected]
   at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
   at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
   at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Other Message:

Error Number:

Source File:
c:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\Default.aspx

Line Number:
20
 
 
Date: 11-19-2010

Time: 11:26:05

Server: crmsrv02
 
 
Request URL:
[url]http://localhost/ISV/Files/default.aspx?guid=07A71E60-2EF3-DF11-BB70-003048BE732D[/url]
в папке \ISV\Files

находятся следующие файлы и папки:
App_Data
bin
Default.aspx
Default.aspx.designer.vb
Default.aspx.vb
web.config

в папке bin:

Default.aspx.dll
Default.aspx.pdb
Default.aspx.xml

папка App_Data - пустая.

Что я делаю не так, подскажите пожалуйста. Спасибо!
Старый 19.11.2010, 11:46   #10  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
НА сайте mmcrm.ru вы упоминали что в папке должны находится файлы

Default.aspx, .aspx.cs, web.config, bin

Где взять мне Default.aspx.cs??

может ошибка в нем?

и может я неправильно создаю проект в Visual Studio 2008??
Старый 19.11.2010, 12:00   #11  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Разобрался я создавал Новый проект - а нужно было новый Веб сайт, выбрал язык C# и у меня в проекте появился default.aspx.cs

в нем я написал нужный код, и файл веб.конфиг тоже вставил нужный код,
публикую в нужной папке

запускаю с GUID-ом в URL

получаю такую ошибку:

X++:
Error Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Error Details:
Exception of type 'System.Web.HttpUnhandledException' was thrown.

Full Stack:
[Exception: The request failed with HTTP status 401: Unauthorized.]
   at _Default.Page_Load(Object sender, EventArgs e)
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

[HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.]
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.isv_files_default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\fcc31ff6\e77f4ed8\App_Web_qojphwxb.0.cs:line 0
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Other Message:

Error Number:

Source File:
Not available

Line Number:
Not available
 
 
Date: 11-19-2010

Time: 11:58:02

Server: localhost
 
 
Request URL:
http://localhost/ISV/Files/default.aspx?guid={07A71E60-2EF3-DF11-BB70-003048BE732D}
в чем может быть проблема??
Старый 19.11.2010, 12:03   #12  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Dicora Посмотреть сообщение
находятся следующие файлы и папки:
App_Data
bin
Default.aspx
Default.aspx.designer.vb
Default.aspx.vb
web.config
Немного внимательности и всё будет шикарно. VB означает что вы создали страничку базовым .Net языком которой является Visual Basic .Net. Пересоздавайте страницу с C# базовым и продолжайте ваши изыскания.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 19.11.2010, 12:20   #13  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Да это уже понял =)) просто для меня это впервые и в следующий раз я уже буду знать эти нюансы.

А по поводу ошибки можете сказать из-за чего она - если я всё правильно делаю по инструкции почему она именно у меня возникает??
Старый 19.11.2010, 12:26   #14  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Dicora Посмотреть сообщение
Да это уже понял =)) просто для меня это впервые и в следующий раз я уже буду знать эти нюансы.

А по поводу ошибки можете сказать из-за чего она - если я всё правильно делаю по инструкции почему она именно у меня возникает??
Первое - у вас организация называется superfirma?

CrmAuthenticationToken token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, "superfirma");

Попробуйте обращаться к странице как к

http://localhost/<имя организации>/ISV/Files/Default.apsx?guid={ИД-аннотации из базы}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 19.11.2010, 13:12   #15  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Нет, в первый раз да я забыл поменять эту строчку, в новом варианте я исправил её на название моей организации. Также пробовал набирать URL адрес с именем организации как вы и написали ошибка такая же:


X++:
Error Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Error Details:
Exception of type 'System.Web.HttpUnhandledException' was thrown.

Full Stack:
[Exception: The request failed with HTTP status 401: Unauthorized.]
   at _Default.Page_Load(Object sender, EventArgs e)
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

[HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.]
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.mycompany_isv_files_default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\fcc31ff6\e77f4ed8\App_Web_dsgbnpdt.0.cs:line 0
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

тут явно ошибка в этом:

Exception of type 'System.Web.HttpUnhandledException' was thrown.

но что это и как и где это исправить я не понимаю.
Старый 19.11.2010, 13:19   #16  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
в Гугле искал решения но там ничего толком и не говорится, а всё что есть всё на английском - я не понимаю его, к сожалению ((((

подскажите в каком месте в файле нужно внести корректировки и какие чтобы работало.

Спасибо!
Старый 22.11.2010, 08:13   #17  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Бегло прочитал тему и, как мне показалось не на все вопросы были даны ответы.
1. Файлы хранятся в БАЗЕ! Весь контент системы CRM 4.0 кроме страниц расширения хранится в базе и нигде кроме.
2. Токены про которые вы говорите используются каким-то недокументированным механизмом безопасности. Если вы хотите чтобы ваше решение вообще когда-нибудь заработало (хотя лично я в этом не уверен) то проверку токенов нужно отключить: https://community.dynamics.com/produ....aspx#comments
3. Когда учатся программировать, читают книги, а не пишут на форумы. Может быть и вам попробовать? А то у меня складывается ощущение, что мы тут скоро отлаживаться по шагам будем вместе с вами?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 22.11.2010, 10:31   #18  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Решение заработало, спасибо огромное slivka_83

Цитата:

Необходимо поменять название организации в исходниках.
Поэтому высылаю исходники:
архив: http://zalil.ru/30007683

Открываешь их в VS2008 и правишь название организации на свое.
Затем создаешь в папке ISV подпапку "dla".
Из VS публикуешь (Build - Publish Web Site) проект в эту папку.

Ну и чтобы скатать какой-нибудь приаттаченый файл вызываешь такую урлу
http://<имя_сервера>/isv/dla/default.aspx?guid=<guid_приаттаченного _файла>
Если файл не скачается, прилагаю архив:


Если кто-то захочет вытащить вложенный файл из примечаний по запросу - пользуйтесь этим решением. Спасибо всем кто помогал!
Вложения
Тип файла: zip WebSite2.zip (2.3 Кб, 104 просмотров)
Старый 22.11.2010, 12:34   #19  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Т.е. все заработало сразу, если бы вы внимательно прочли статью slivka_83 и не начали паниковать.
Теги
crm, аннотации, вложения, выгрузка файлов, приаттаченные файлы, прикрепление файла, примечания

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
Все о Microsoft Dynamics CRM: Как установить Microsoft Dynamics CRM 2011 Beta Blog bot Dynamics CRM: Blogs 0 31.10.2010 15:08
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:02.