Devart.Data. Oracle .OracleConnection не может быть преобразован в ... при работе на сервере - PullRequest
0 голосов
/ 17 июня 2020

Я разрабатываю в vs2012 с базой данных oracle и Entity Framework 6.0, используя Devart.Data. Oracle для подключения к базе данных. в последнем развертывании я получаю эту ошибку: «Devart.Data. Oracle .OracleConnection не может быть преобразован в ...» только при работе на сервере. на локальном компьютере + режим отладки, все go ОК.

я предполагаю, что это связано с обновлением Devart или Entityframework и, возможно, связано с файлом app.config. но все попытки потерпели неудачу. полное сообщение об ошибке: Пакетная консоль: [A] Devart.Data. Oracle .OracleConnection не может быть преобразован в [B] Devart.Data. Oracle .OracleConnection. Тип A происходит от \ 'Devart.Data. Oracle, Version = 8.1.36.0, Culture = нейтральный, PublicKeyToken = 09af7300eec23701' в контексте 'Default' в расположении \ 'C: \ Windows \ assembly \ GAC_MSIL \ Devart .Data.Oracle \ 8.1.36.0__09af7300eec23701 \ Devart.Data. Oracle .dll '. Тип B происходит из Devart \ .Data. Oracle, Version = 9.7.770.0, Culture = нейтральный, PublicKeyToken = 09af7300eec23701 'в контексте' Default 'в расположении' \ vsrvmink \ un \ VMIKUN \ mikunjr \ PVN \ ctm01_mushlach_yomi \ test \ Status_Tst \ Devart.Data. Oracle .dll '.

файл конфигурации выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="ParallelRun.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
        </sectionGroup>
      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="ParallelRun.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
  <connectionStrings>   
    <add name="PVNEntitiesConnectionString" connectionString="metadata=res://*/DataModelContex.csdl|res://*/DataModelContex.ssdl|res://*/DataModelContex.msl;provider=Devart.Data.Oracle;provider connection string=&quot;User Id=pvn;Password=pvn;Server=test;Direct=True;Sid=test;Persist Security Info=True&quot;" providerName="System.Data.EntityClient"/>

    <userSettings>      
        <ParallelRun.Properties.Settings>
            <setting name="DeleteBeforeRun" serializeAs="String">
                <value>delete from pvn_tnuot</value>
            </setting>
            <setting name="DeleteBeforeDS" serializeAs="String">
                <value />
            </setting>
            <setting name="ExportCommand" serializeAs="String">
                <value />
            </setting>
        </ParallelRun.Properties.Settings>
    </userSettings>
  <system.data>
    <DbProviderFactories>
      <!--<remove invariant="Devart.Data.Oracle"/>
      <add name="dotConnect for Oracle" invariant="Devart.Data.Oracle" description="Devart dotConnect for Oracle" type="Devart.Data.Oracle.OracleProviderFactory, Devart.Data.Oracle, Version=9.7.770.0, Culture=neutral, PublicKeyToken=09af7300eec23701"/>-->
    </DbProviderFactories>
  </system.data>
  <entityFramework>
    <providers>
      <provider invariantName="Devart.Data.Oracle" type="Devart.Data.Oracle.Entity.OracleEntityProviderServices, Devart.Data.Oracle.Entity.EF6, Version=9.7.770.0, Culture=neutral, PublicKeyToken=09af7300eec23701" />
    </providers>
  </entityFramework>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
  <applicationSettings>
    <ParallelRun.Properties.Settings>
      <setting name="LogFileName" serializeAs="String">
        <value>BatchLogTs</value>
      </setting>
    </ParallelRun.Properties.Settings>
  </applicationSettings>
</configuration>

код первой строки, открывающий соединение с базой данных, очень прост: int bankscounter = DataAccess.Instance.CountBanks(); в этот момент все компоненты подключения загружены, и я получаю эту ошибку. любая помощь / предложения приветствуются.

1 Ответ

0 голосов
/ 30 июня 2020
  1. Проверить регистрацию провайдера в глобальных файлах и конфигурационных файлах приложения: https://forums.devart.com/viewtopic.php?t=33320#p115587.
  2. Есть ли файлы Devart.* и policy.*.Devart.* в вашем GA C?
  3. Проверить версии сборок Devart. * В папке вашего приложения и в GA C.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...