Я пишу приложение, которое подключается к CRM с помощью CRM SDK 4. В первой версии я использовал файл app.config (раздел 'connectionStrings')
<connectionStrings>
<add name="mycrm" connectionString="Authentication Type=Integrated; Server=http://ServerName/OrganizationName;"/>
</connectionStrings>
и (в коде):
DataContext ctx = new DataContext("mycrm");
и работает нормально. Но теперь приложение должно позволять пользователю выбирать тип аутентификации, имя сервера, идентификатор пользователя, пароль и т. Д. Я создал строку подключения, но я не знаю, как ее использовать. Объекты DataContext и CrmConnection, AFAIK, имеют только конструкторы с именем connectionString (из файла app.config) в качестве параметра. Когда я пытаюсь использовать мою connectionString, я получаю исключение:
System.ApplicationException was unhandled
Сообщение = "Невозможно загрузить имя строки подключения" Тип аутентификации = Интегрированный; Сервер = http://ServerName/OrganizationName;'"
Источник = "Microsoft.Xrm.Client"
Трассировки стека:
в Microsoft.Xrm.Client.CrmConnection.GetConnectionStringFrom (String connectionStringName)
в Microsoft.Xrm.Client.CrmConnection..ctor (String connectionStringName, String connectionString)
в Microsoft.Xrm.Client.CrmConnection..ctor (String connectionStringName)
в ARP.EstateExtensions.PaymentsUploader.MainWindows..ctor (String connectionString) в C: \ Users \ mrobaszynski \ Desktop \ PU \ PaymentsUploader \ MainWindows.xaml.cs: строка 38
в ARP.EstateExtensions.PaymentsUploader.LoginWindow.bOK_Click (Отправитель объекта, RoutedEventArgs e) в C: \ Users \ mrobaszynski \ Desktop \ PU \ PaymentsUploader \ LoginWindow.xaml.cs: строка 92
в System.Windows.EventRoute.InvokeHandlersImpl (источник объекта, аргументы RoutedEventArgs, логическое переопределение)
в System.Windows.UIElement.RaiseEventImpl (отправитель DependencyObject, аргументы RoutedEventArgs)
в System.Windows.Controls.Button.OnClick ()
в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs e)
в System.Windows.RoutedEventArgs.InvokeHandler (обработчик делегата, цель объекта)
в System.Windows.EventRoute.InvokeHandlersImpl (источник объекта, аргументы RoutedEventArgs, логическое переопределение)
в System.Windows.UIElement.ReRaiseEventAs (отправитель DependencyObject, аргументы RoutedEventArgs, RoutedEvent newEvent)
в System.Windows.UIElement.OnMouseUpThunk (Отправитель объекта, MouseButtonEventArgs e)
в System.Windows.RoutedEventArgs.InvokeHandler (обработчик делегата, цель объекта)
в System.Windows.EventRoute.InvokeHandlersImpl (источник объекта, аргументы RoutedEventArgs, логическое переопределение)
в System.Windows.UIElement.RaiseEventImpl (отправитель DependencyObject, аргументы RoutedEventArgs)
в System.Windows.UIElement.RaiseEvent (аргументы RoutedEventArgs, логическое доверенное)
в System.Windows.Input.InputManager.ProcessStagingArea ()
в System.Windows.Input.InputManager.ProcessInput (вход InputEventArgs)
в System.Windows.Input.InputProviderSite.ReportInput (InputReport inputReport)
в System.Windows.Interop.HwndMouseInputProvider.ReportInput (IntPtr hwnd, режим InputMode, временная метка Int32, действия RawMouseActions, Int32 x, Int32 y, колесо Int32)
в System.Windows.Interop.HwndMouseInputProvider.FilterMessage (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & handled)
в System.Windows.Interop.HwndSource.InputFilterMessage (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & handled)
в MS.Win32.HwndWrapper.WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation (Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, логическое значение isSingleParameter)
в System.Windows.Threading.ExceptionWrapper.TryCatchWhen (источник объекта, обратный вызов делегата, аргументы объекта, логический isSingleParameter, делегат catchHandler)
в System.Windows.Threading.Dispatcher.InvokeImpl (приоритет DispatcherPriority, время ожидания TimeSpan, метод Delegate, аргументы объекта, логическое значение isSingleParameter)
в MS.Win32.HwndSubclass.SubclassWndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)в MS.Win32. UnsafeNativeMethods.DispatchMessage (MSG & msg)
в System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage (MSG & msg)
в System.Windows.Threading.Dispatcher.PushFrameImpl (фрейм DispatcherFrame)
в System.Windows.Application.RunInternal (окно окна)
в PaymentsUploader.App.Main () в C: \ Users \ mrobaszynski \ Desktop \ PU \ PaymentsUploader \ obj \ Release \ App.g.cs: строка 0
в System.AppDomain._nExecuteAssembly (сборка сборки, аргументы String [])
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта)
в System.Threading.ThreadHelper.ThreadStart ()
InnerException: System.NullReferenceException
Message = "Ссылка на объект не установлена на экземпляр объекта."
Источник = "Microsoft.Xrm.Client"
Трассировки стека:
в Microsoft.Xrm.Client.CrmConnection.GetConnectionStringFrom (String connectionStringName)
InnerException: