Проблема с настройкой Oscova Bot на стати c IP-адрес - PullRequest
1 голос
/ 16 января 2020

Я попробовал бота, обучив его с помощью SIML и базы данных. Я сталкиваюсь с проблемой при развертывании на stati c IP. Когда я пытаюсь развернуть бота по URL-адресу, отличному от localhost, например http://192.168.0.25: 8086 / bot , в консоли говорится, что доступ запрещен. Более того, развертывание на локальном хосте и его развертывание на сервере IIS с использованием Inetmgr. а затем доступ к нему с помощью IP-адреса и PORT с компьютеров в одном домене говорит «Неверное имя хоста». Я использую AJAX, чтобы получить ответы, которые отлично работают на моем локальном хосте. Но доступ к компьютерам, отличным от localhost, говорит, что запрос был заблокирован из-за политики CORS. Можете ли вы дать мне некоторое представление о том, как я могу успешно развернуть бота.

1 Ответ

0 голосов
/ 16 января 2020

Если вы работаете с WCF Self Hosted, вам придется заставить службу работать в междоменном домене.

Ваше приложение может использовать некоторые из CORS, найденных здесь http://enable-cors.org/server_wcf.html

Ниже приведена копия конфигурации, которую я использовал:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <httpRuntime
        maxRequestLength="2147483647"
        executionTimeout="300" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
        <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
        <add name="Access-Control-Max-Age" value="1728000" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <system.serviceModel>
    <extensions>
      <behaviorExtensions>
        <add name="crossOriginResourceSharingBehavior" type="Work.Server.EnableCrossOriginResourceSharingBehavior, Work.Server, Version=1.0.0.0, Culture=neutral" />
      </behaviorExtensions>
    </extensions>
    <bindings>
      <webHttpBinding>
        <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
        </binding>
      </webHttpBinding>
    </bindings>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
      <service name="Work.Server.WorkService">
        <endpoint address="" behaviorConfiguration="restfulBehaviour" binding="webHttpBinding" contract="Work.Server.IWorkService" bindingConfiguration="webHttpBindingWithJsonP" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="restfulBehaviour">
          <webHttp automaticFormatSelectionEnabled="false" />
          <crossOriginResourceSharingBehavior />
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>

  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...