Сбой Sage200c SDK в веб-формах
У нас возникла проблема с Sage 200c Extra 2018 SDK при использовании в веб-формах.
Мы создали решение с библиотекой, Win Win и веб-форм проекта. Мы заметили, что при использовании "проекта Win Forms" это работает, но тот же пример в "проекте Web Forms" дает сбой. В документации Sage 200c SDK не говорится исключительно о Win или веб-формах и о том, какая конфигурация может понадобиться каждому. Не могли бы вы помочь нам заставить это работать в веб-формах? У нас есть более старая версия SDK, работающая над более старой версией Sage 200 v8. Мы обновили Sage 200 v8 до Sage 200c Extra 2018 Summer Enhancements и протестировали его с новым клиентом, и все работает. Я заметил в мудреце Сити подобные вопросы, но не получил ответа.
Вот наш пример кода:
Private Shared Sub FindCore200()
' get registry info for Sage 200 server path
Dim path As String = String.Empty
Dim root As RegistryKey = Registry.CurrentUser
Dim key As RegistryKey = root.OpenSubKey(REG_PATH)
If key IsNot Nothing Then
Dim value As Object = key.GetValue(REGKEY_VALUE)
If value IsNot Nothing Then
path = TryCast(value, String)
End If
End If
' refer to all installed assemblies based on location of default one
If String.IsNullOrEmpty(path) = False Then
Dim commonDllAssemblyName As String = System.IO.Path.Combine(path, DEFAULT_ASSEMBLY)
If (System.IO.File.Exists(commonDllAssemblyName)) Then
Dim defaultAssembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFrom(commonDllAssemblyName)
Dim type As Type = defaultAssembly.[GetType](ASSEMBLY_RESOLVER)
Dim method As MethodInfo = type.GetMethod(RESOLVER_METHOD)
Dim x = method.Invoke(Nothing, Nothing)
Dim ok = 1
End If
End If
End Sub
при запуске приложения оно всегда вылетает на
application = New Sage.Accounting.Application
Тип исключения: System.TypeInitializationException Сообщение: инициализатор типа для 'Sage.Accounting.Application' вызвал исключение.
Внутреннее исключение: Тип исключения: System.IO.FileNotFoundException Сообщение: не удалось загрузить файл или сборку 'Sage.MMSAdmin.Util, версия =19.0.0.0, культура = нейтральная, PublicKeyToken=b2daa66d74953d11' или одна из ее зависимостей. Система не может найти указанный файл.
1 ответ
Ваши пулы приложений ориентированы на правильную версию.net и битовую архитектуру?
Если вы можете физически увидеть сборку по пути, а приложение - нет, обычно дело в том, что настроена неправильная версия.net. Переход от такой старой версии к новой, скорее всего, требует изменения версии.net (например, с 2.0 на 4.5). Может случиться так, что ваше решение winforms настроено на правильную конфигурацию, и вам определенно стоит сравнить ваши настройки сборки и приложения. Убедитесь, что вы используете правильную архитектуру процессора в вашей сборке.