Важно у вас он может как работать так и нет это зависит от многих факторов в том числе в правильности ваших действий.
Здесь я быстро объясню, как настроить систему центрального рынка для вашего сервера Corsair.
Я предполагаю, что вы уже знаете, как установить IIS с помощью ASP.net или даже правильно его установить, поскольку это необходимо для рынка систем, основанных на веб-приложениях.
1. Настройка папок и разрешений.
2. Создание веб-сайтов в IIS
3. Что в какую папку попадает
4. Конфигурация «web.config» и один XML.
5. Добавьте домен в файл хостов Windows.
Чтобы поддельный домен работал, вам необходимо добавить его в файл хостов сервера и машины, на которой вы запускаете свой клиент. Это должен сделать каждый человек, который хочет подключиться к вашему серверу и использовать центральный рынок вашего сервера.
Чтобы быстро добраться до файла, одновременно нажмите клавиши Windows и R, появится новое окно.
Там вы вставляете эту строку и нажимаете ввод «%windir%\system32\drivers\etc» без кавычек. Откроется папка, в которой находится файл хостов. Вы можете открыть файл в любом текстовом редакторе, но имейте в виду, что вам обычно нужны права администратора, чтобы снова сохранить файл в том же месте.
Там вы просто добавляете три строки, несколько строк уже должны быть на стороне сервера, чтобы что-то заблокировать. У клиента это обычно просто комментарии. Добавьте IP-адрес перед тем, где находится домашний веб-сайт, вкладку, а затем поддомен вашего веб-сайта.
192.168.255.130 api-trade.local-bdo.net
192.168.255.130 game.local-bdo.net
192.168.255.130 trade.local-bdo.net
6. Сообщите клиенту, где находится рынок
Теперь только вашему игровому клиенту нужно знать, где искать Центральный рынок. Откройте service.ini вашего клиента и под «NA» вам нужно добавить две строки, чтобы полный файл выглядел следующим образом:
С помощью этих строк вы теперь должны получить информацию о рыночной цене ваших товаров, а также иметь возможность открыть рынок. Веб-приложениям требуется некоторое время для загрузки, вы можете редактировать их, когда ваш сервер включен или выключен, не имеет значения, они независимы.
Просто подождите немного после входа в игру, прежде чем пробовать ее, вы всегда получите две или три ошибки, если вы первый человек, пытающийся открыть Центральный рынок в первый раз после загрузки сервера. Это будет происходить всегда и кажется нормальной частью процесса инициализации.
Веб-сайты обычно генерируют файлы журналов на диске C:. Новая папка должна создаваться всякий раз, когда веб-сайты что-то делают или вы пытаетесь получить к ним доступ из игры. Папка называется «palog», и внутри нее вы должны найти еще три папки: «api-trade», «gameweb», «tradeweb». Существуют файлы журналов Json, в которых регистрируются все действия, выполняемые в Интернете, от запуска до регистрации ошибок, когда что-то работает не так, как вы хотите.
Если вы получаете сообщение об ошибке аутентификации, это, вероятно, означает, что ваш клиент отправляет недействительную информацию для аутентификации и, возможно, его нельзя использовать. Пользуюсь клиентом из пака и все работает нормально.
Если вы получили ошибку «uspIsGameMaster», которая ожидает «atNationCode», но она не была предоставлена, сообщите мне, что у меня есть решение для этой проблемы.
Я надеюсь, что теперь это поможет всем попытаться настроить работающий центральный рынок для своего сервера.
Здесь я быстро объясню, как настроить систему центрального рынка для вашего сервера Corsair.
Я предполагаю, что вы уже знаете, как установить IIS с помощью ASP.net или даже правильно его установить, поскольку это необходимо для рынка систем, основанных на веб-приложениях.
1. Настройка папок и разрешений.
На вашем основном диске, обычно C:, должна появиться новая папка с именем «inetpub», созданная в процессе установки IIS. Вот куда идут все сайты. Теперь зайдите в папку и создайте три папки для трех нужных нам веб-сайтов:
api-trade, game, trade.
Вот как я назвал их для своего сервера:
. Далее идут разрешения для пользователя IIS. поскольку ему нужно работать, то есть выполнять вещи для центрального рынка. Имя пользователя IIS — «IIS_IUSRS» без кавычек. Теперь щелкните правой кнопкой мыши первую из трех папок, свойства, вкладку «Безопасность».
Верхняя половина окна «Редактировать», в новом всплывающем окне добавьте.
Появится другое окно, в котором вы вводите имя пользователя IIS, где написано «Имя объекта»
После этого вы нажмете «Проверить имя». Если у вас нет опечатки, вы увидите, что оно подчеркнуто и к нему добавлено имя вашего сервера, которое затем выглядит как «имя сервера \ IIS_IUSRS». После этого вы нажимаете «ОК» и в окне « разрешения для «имени папки» в верхней половине вы можете найти недавно добавленного пользователя IIS, щелкнуть его в списке, а в нижней половине окна вы можете установить разрешения для указанного пользователя.
Отметьте левые поля, в которых должно быть написано «Предоставить» или что-то подобное на английском языке для «прочитать и выполнить», «список/просмотр», «прочитать». Вот
еще одно изображение этого окна с отмеченными флажками:
После этого вы нажимаете «Применить», «ОК» и делаете то же самое для другого окна, если нужно нажать «Применить»,
Этот шаг разрешения вы сейчас выполняете для всех трех папок. Это то же самое.
api-trade, game, trade.
Вот как я назвал их для своего сервера:
. Далее идут разрешения для пользователя IIS. поскольку ему нужно работать, то есть выполнять вещи для центрального рынка. Имя пользователя IIS — «IIS_IUSRS» без кавычек. Теперь щелкните правой кнопкой мыши первую из трех папок, свойства, вкладку «Безопасность».
Верхняя половина окна «Редактировать», в новом всплывающем окне добавьте.
Появится другое окно, в котором вы вводите имя пользователя IIS, где написано «Имя объекта»
После этого вы нажмете «Проверить имя». Если у вас нет опечатки, вы увидите, что оно подчеркнуто и к нему добавлено имя вашего сервера, которое затем выглядит как «имя сервера \ IIS_IUSRS». После этого вы нажимаете «ОК» и в окне « разрешения для «имени папки» в верхней половине вы можете найти недавно добавленного пользователя IIS, щелкнуть его в списке, а в нижней половине окна вы можете установить разрешения для указанного пользователя.
Отметьте левые поля, в которых должно быть написано «Предоставить» или что-то подобное на английском языке для «прочитать и выполнить», «список/просмотр», «прочитать». Вот
еще одно изображение этого окна с отмеченными флажками:
После этого вы нажимаете «Применить», «ОК» и делаете то же самое для другого окна, если нужно нажать «Применить»,
Этот шаг разрешения вы сейчас выполняете для всех трех папок. Это то же самое.
На этом этапе мы просто предполагаем поддельный домен «local-bdo.net», поскольку, вероятно, у многих вообще нет домена. Вы можете изменить это на все, что захотите. Просто убедитесь, что вы используете безопасные символы URL и не используете никаких необычных вещей.
Откройте IIS и щелкните левой кнопкой мыши, пока не увидите сайт по умолчанию. Вы можете оставить его там или удалить не имеет значения.
Щелкните правой кнопкой мыши папку сайтов и выберите «Добавить веб-сайт/Новый веб-сайт». Откроется новое окно, и мы начнем с «api-trade».
Имя сайта может быть любым, но вы должны назвать его так, чтобы вы знали, что это такое. поэтому я просто называю это «api-trade».
Application.Pool автоматически присвоит имя вашего сайта, не нужно ничего там менять.
Затем установите физический путь, где находится папка вашего веб-сайта для «api-trade», в моем случае это «C:\inetpub\bdo-api-trade». Для привязки, если у вас нет домена и сертификата, оставьте его по адресу http put
. на ваших серверах IP может быть внутренним или внешним в зависимости от того, что вам нужно. Порт HTTP по умолчанию — 80, и теперь для имени хоста вам нужно создать поддомен, поэтому в моем случае это «api-trade.local-bdo.net».
Вот скриншот того, как он выглядит для локального использования во внутренней сети:
После этого просто нажмите «ОК» и сделайте это еще два раза для «игры» и «торговли».
Скриншот для «игры»:
Скриншот для «торговли»:
Теперь у вас должно быть три веб-сайта, работающих в IIS, но в них нет ничего, что мы исправим на следующем шаге.
Откройте IIS и щелкните левой кнопкой мыши, пока не увидите сайт по умолчанию. Вы можете оставить его там или удалить не имеет значения.
Щелкните правой кнопкой мыши папку сайтов и выберите «Добавить веб-сайт/Новый веб-сайт». Откроется новое окно, и мы начнем с «api-trade».
Имя сайта может быть любым, но вы должны назвать его так, чтобы вы знали, что это такое. поэтому я просто называю это «api-trade».
Application.Pool автоматически присвоит имя вашего сайта, не нужно ничего там менять.
Затем установите физический путь, где находится папка вашего веб-сайта для «api-trade», в моем случае это «C:\inetpub\bdo-api-trade». Для привязки, если у вас нет домена и сертификата, оставьте его по адресу http put
. на ваших серверах IP может быть внутренним или внешним в зависимости от того, что вам нужно. Порт HTTP по умолчанию — 80, и теперь для имени хоста вам нужно создать поддомен, поэтому в моем случае это «api-trade.local-bdo.net».
Вот скриншот того, как он выглядит для локального использования во внутренней сети:
После этого просто нажмите «ОК» и сделайте это еще два раза для «игры» и «торговли».
Скриншот для «игры»:
Скриншот для «торговли»:
Теперь у вас должно быть три веб-сайта, работающих в IIS, но в них нет ничего, что мы исправим на следующем шаге.
Добро пожаловать в хаос того, сколько «zip» и «rar» можно запихнуть в папку, чтобы запутать пользователей.
По сути, заархивированные файлы представляют собой другие версии, иногда только второстепенные версии dll, иногда основные. Вот что я выбрал и сработало для меня.
Когда вы получаете серверный пакет, там есть две папки «market», одна просто «Market», а другая «TradeMarketProcessWeb», мы берем вторую.
«api-trade»:
внутри вы найдете папку под названием «GB.BlackDesert.Trade.Web.Process». Все, что там находится, попадает в папку вашего веб-сайта «api-trade». Вы можете оставить zip/rar-архивы там или удалить их, они не повредят и просто игнорируются веб-приложением.
'игра':
Папка веб-сайта игры называется «GB.BlackDesert.Trade.Web.Game», и все содержимое этой папки попадает в папку веб-сайта игры
«торговля»:
для «торговли». ', в него входят две папки: «GB.BlackDesert.Trade.Web» и «GB.BlackDesert.Trade.Web.Contents». Первая папка помещается во вторую, просто папка игнорирует файлы version.txt и web.config. Я щелкнул все, что изображено на этом снимке экрана, чтобы лучше было видно, что я имею в виду:
. Когда у вас все готово, мы готовы перейти к следующему шагу — редактированию файла web. файлы конфигурации.
По сути, заархивированные файлы представляют собой другие версии, иногда только второстепенные версии dll, иногда основные. Вот что я выбрал и сработало для меня.
Когда вы получаете серверный пакет, там есть две папки «market», одна просто «Market», а другая «TradeMarketProcessWeb», мы берем вторую.
«api-trade»:
внутри вы найдете папку под названием «GB.BlackDesert.Trade.Web.Process». Все, что там находится, попадает в папку вашего веб-сайта «api-trade». Вы можете оставить zip/rar-архивы там или удалить их, они не повредят и просто игнорируются веб-приложением.
'игра':
Папка веб-сайта игры называется «GB.BlackDesert.Trade.Web.Game», и все содержимое этой папки попадает в папку веб-сайта игры
«торговля»:
для «торговли». ', в него входят две папки: «GB.BlackDesert.Trade.Web» и «GB.BlackDesert.Trade.Web.Contents». Первая папка помещается во вторую, просто папка игнорирует файлы version.txt и web.config. Я щелкнул все, что изображено на этом снимке экрана, чтобы лучше было видно, что я имею в виду:
. Когда у вас все готово, мы готовы перейти к следующему шагу — редактированию файла web. файлы конфигурации.
Если вы придерживаетесь имен поддоменов «api-trade», «game» и «trade», это, вероятно, будет действительно легко. Вы можете открыть эти файлы практически в любом текстовом редакторе, мой личный выбор — Notepad++ или Sublime.
зайдите в папку вашего веб-сайта «api-trade» и откройте там файл web.config. Я просто дам вам свой «web.config», вам просто нужно заменить IP-адреса и домены на свои.
IP-адрес, который вам нужно заменить на свой, — 192.168.255.130, не волнуйтесь, это внутренний IP-адрес машины VMware, поэтому он не подвергается воздействию внешнего мира.
Доменное имя — «local-bdo.net», вы можете оставить его или заменить своим, но имейте в виду, что оно должно совпадать с тем, что вы настроили на этапе веб-сайта IIS, поскольку все три этих сайта могут и должны взаимодействовать с друг друга,
вы увидите «connectionString» во всех трех файлах web.config. Эти строки определяют, где ваш веб-сервер находит SQL-сервер. Базы данных уже правильно связаны, вам просто нужно изменить IP-адреса вашего SQL-сервера и принять решение, хотите ли вы создать дополнительного пользователя БД, который использует веб-приложение, или заменить его на пользователя по умолчанию, который использует сервер. Дополнительный пользователь — «CrimsonTradeReader», который использует тот же пароль, что и пользователь «CrimsonDesert».
Я перевел веб-сайты в «режим реального времени» и отключил «режим отладки», так как он мне больше не нужен, если он вам нужен для каких-либо целей, найдите «<
add key="isDebug" value="false" />» и установите это значение true для большего количества журналов.
Каждый раз, когда вы редактируете и сохраняете один из файлов «web.
URL-адреса также настроены на HTTP!
'апи-торговля':
'игра':
'торговля':
Это важно, не забудьте этот шаг, иначе на вашем сервере просто не будет работающего рынка. В папке «api-trade» вашего веб-сайта есть путь «C:\inetpub\bdo-api-trade\Contents\Common\xml\BDOWorldTradeMarketItemData\NA», и там находятся все дополнительные настройки для Центрального рынка. Он будет работать со всем по умолчанию, кроме одного файла. «BDOWorldTradeMarketServerInfo» Откройте это, и там вам нужно сменить IP на свой, вот мой файл:
Не забывайте об этом!
зайдите в папку вашего веб-сайта «api-trade» и откройте там файл web.config. Я просто дам вам свой «web.config», вам просто нужно заменить IP-адреса и домены на свои.
IP-адрес, который вам нужно заменить на свой, — 192.168.255.130, не волнуйтесь, это внутренний IP-адрес машины VMware, поэтому он не подвергается воздействию внешнего мира.
Доменное имя — «local-bdo.net», вы можете оставить его или заменить своим, но имейте в виду, что оно должно совпадать с тем, что вы настроили на этапе веб-сайта IIS, поскольку все три этих сайта могут и должны взаимодействовать с друг друга,
вы увидите «connectionString» во всех трех файлах web.config. Эти строки определяют, где ваш веб-сервер находит SQL-сервер. Базы данных уже правильно связаны, вам просто нужно изменить IP-адреса вашего SQL-сервера и принять решение, хотите ли вы создать дополнительного пользователя БД, который использует веб-приложение, или заменить его на пользователя по умолчанию, который использует сервер. Дополнительный пользователь — «CrimsonTradeReader», который использует тот же пароль, что и пользователь «CrimsonDesert».
Я перевел веб-сайты в «режим реального времени» и отключил «режим отладки», так как он мне больше не нужен, если он вам нужен для каких-либо целей, найдите «<
add key="isDebug" value="false" />» и установите это значение true для большего количества журналов.
Каждый раз, когда вы редактируете и сохраняете один из файлов «web.
URL-адреса также настроены на HTTP!
'апи-торговля':
Код:
<?xml version="1.0" encoding="utf-8"?>
<!--
ASP.NET 응용 프로그램을 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!-- Log4net -->
<log4net degug="true">
<appender name="COMMONLOGGER" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="C:/Data/WebLog/GlobalTrade/PC/Process/%property{LOGPATHSTRING}/%date{yyyyMM}/%date{yyyyMMdd}.log" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="COMMONLOGGER" />
</root>
</log4net>
<appSettings>
<add key="isLive" value="true" />
<add key="cookieDomain" value="local-bdo.net" />
<add key="cdnDomain" value="http://local-bdo.net/test" />
<add key="tradeXMLDomain" value="http://api-trade.local-bdo.net/Contents" />
<add key="AllowIPList" value="127.0.0.1|192.168.255.130" />
<add key="selfServerIP" value="192.168.255.130" />
<add key="isTradeOpen" value="true" />
<add key="allowIndex" value="0" />
<add key="serviceProject" value="BDO" />
<add key="serviceType" value="NA" />
<add key="isPearlApp" value="true" />
<add key="defaultCulture" value="en-US" />
<add key="defaultLanguage" value="en" />
<add key="branches" value="live" />
<add key="platform" value="api-trade" />
<add key="isDebug" value="false" />
</appSettings>
<connectionStrings>
<add connectionString="metadata=res://*/DB.TradeWebDB.csdl|res://*/DB.TradeWebDB.ssdl|res://*/DB.TradeWebDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_TRADEDB_0002;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" name="TradeWebDB" providerName="System.Data.EntityClient" />
<add connectionString="metadata=res://*/DB.TradeLogDB.csdl|res://*/DB.TradeLogDB.ssdl|res://*/DB.TradeLogDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=PF_BETA_LOGDB_0001;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" name="TradeLogDB" providerName="System.Data.EntityClient" />
<add connectionString="metadata=res://*/DB.TradeWorldDB.csdl|res://*/DB.TradeWorldDB.ssdl|res://*/DB.TradeWorldDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_WORLDDB_0002;persist security info=True;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;application name=EntityFramework"" name="TradeWORLDDB" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<!--2016.11.15 추가-->
<httpRuntime targetFramework="4.5.2" enableVersionHeader="false" maxRequestLength="10485760" />
<globalization culture="auto" uiCulture="auto" />
</system.web>
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="false">
<requestLimits maxAllowedContentLength="1073741824" maxQueryString="1048567" />
<verbs allowUnlisted="false">
<add verb="GET" allowed="true" />
<add verb="POST" allowed="true" />
</verbs>
</requestFiltering>
</security>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/error" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Server" />
<remove name="X-AspNetMvc-Version" />
<remove name="X-AspNet-Version" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Код:
<?xml version="1.0" encoding="utf-8"?>
<!--
ASP.NET 응용 프로그램을 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!-- Log4net -->
<log4net degug="true">
<appender name="COMMONLOGGER" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="C:/Data/WebLog/TW/GlobalTrade/Game/%property{LOGPATHSTRING}/%date{yyyyMM}/%date{yyyyMMdd}.log" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="COMMONLOGGER" />
</root>
</log4net>
<appSettings>
<add key="isLive" value="true" />
<add key="cookieDomain" value=".local-bdo.net" />
<add key="processDomain" value="http://api-trade.local-bdo.net/GameProcess" />
<add key="AllowIPList" value="127.0.0.1|192.168.255.130" />
<add key="serviceProject" value="BDO" />
<add key="serviceType" value="NA" />
<add key="isPearlApp" value="true" />
<!-- 인증관련 Config -->
<add key="authCookie" value="TradeAuth_Cookie" />
<add key="authenticationTimeOut" value="120" />
<add key="cdnDomain" value="http://local-bdo.net/test" />
<add key="defaultCulture" value="en-US" />
<add key="defaultLanguage" value="en" />
<add key="isTradeOpen" value="true" />
<!-- UTC 시간 설정 config 시작-->
<!-- 타임존 사용시 -->
<add key="UtcTimeZoneID" value="UTC" />
<!-- 서비스 지역별 UTC -->
<add key="ServiceUtcTime" value="0" />
<!-- 서버시간 사용유무 -->
<add key="isServerTime" value="true" />
<add key="branches" value="live" />
<add key="platform" value="GameWeb" />
<add key="isDebug" value="true" />
<add key="otpAuthUrl" value="localhost" />
<add key="allowBorswerList" value="chrome|" />
</appSettings>
<connectionStrings>
<add name="TradeGameDB_12" connectionString="metadata=res://*/DB.TradeGameDB.csdl|res://*/DB.TradeGameDB.ssdl|res://*/DB.TradeGameDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_GAMEDB_0002;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="TradeWORLDDB" connectionString="metadata=res://*/DB.TradeWorldDB.csdl|res://*/DB.TradeWorldDB.ssdl|res://*/DB.TradeWorldDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_WORLDDB_0002;persist security info=True;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="TradeWebDB" connectionString="metadata=res://*/DB.TradeWebDB.csdl|res://*/DB.TradeWebDB.ssdl|res://*/DB.TradeWebDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_TRADEDB_0002;user id=CrimsonTradeReader;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add connectionString="metadata=res://*/DB.TradeLogDB.csdl|res://*/DB.TradeLogDB.ssdl|res://*/DB.TradeLogDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=PF_BETA_LOGDB_0001;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" name="TradeLogDB" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" enableVersionHeader="false" maxRequestLength="10485760" />
<globalization culture="auto" uiCulture="auto" />
<sessionState cookieName="TradeAuth_Session" mode="SQLServer" sqlConnectionString="data source=192.168.255.130,1433;uid=CrimsonWeb;pwd=BlackNo.1Game#^%" />
<machineKey decryption="AES" decryptionKey="4D70FDC82D742312862F720BBF3805C65211BD765A84A1D1" validationKey="92243B9FC458265DBAE46C4D8B4D1ED00AAC9C1AACC3BE1F16002FE0A39553C8BC8999E4B8304230768D2DE74D6FB1E2DA02BA420733B85E8E08ABBAFDDDC93E" />
<httpCookies domain="local-bdo.net" requireSSL="false" />
</system.web>
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="false">
<requestLimits maxAllowedContentLength="1073741824" maxQueryString="1048567" />
<verbs allowUnlisted="false">
<add verb="GET" allowed="true" />
<add verb="POST" allowed="true" />
</verbs>
</requestFiltering>
</security>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/error" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://trade.local-bdo.net" />
<add name="Access-Control-Allow-Credentials" value="true" />
<remove name="Server" />
<remove name="X-AspNetMvc-Version" />
<remove name="X-AspNet-Version" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Код:
<?xml version="1.0" encoding="utf-8"?>
<!--
ASP.NET 응용 프로그램을 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
[url]http://go.microsoft.com/fwlink/?LinkId=301880[/url]
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!-- Log4net -->
<log4net degug="true">
<appender name="COMMONLOGGER" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="C:/Data/WebLog/TW/GlobalTrade/Web/%property{LOGPATHSTRING}/%date{yyyyMM}/%date{yyyyMMdd}.log" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="COMMONLOGGER" />
</root>
</log4net>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<!-- Proxy 사용 여부-->
<add key="isProxy" value="false" />
<add key="webProxyUrl" value="" />
<add key="webProxyPort" value="" />
<!-- Proxy 사용 여부-->
<add key="isLive" value="true" />
<add key="defaultCulture" value="en-US" />
<add key="cultureList" value="en-US" />
<add key="cultureCookieName" value="lang" />
<add key="cookieDomain" value=".local-bdo.net" />
<add key="cdnDomain" value="http://local-bdo.net/test" />
<add key="tradeXMLDomain" value="http://api-trade.local-bdo.net/Contents" />
<add key="gameDomain" value="http://game.local-bdo.net/GameTradeMarket/" />
<add key="processDomain" value="http://api-trade.local-bdo.net/GameProcess" />
<add key="redirectDomain" value="http://www.local-bdo.net" />
<add key="AllowIPList" value="127.0.0.1|192.168.255.130" />
<add key="isTradeOpen" value="true" />
<add key="isTradeWebOpen" value="true" />
<add key="serviceProject" value="BDO" />
<add key="serviceType" value="NA" />
<add key="defaultLanguage" value="en" />
<add key="languageList" value="en" />
<add key="useCookieProtect" value="true" />
<add key="ServiceAuthCookieName" value="" />
<add key="AllowBrowserList" value="chrome|" />
<add key="publishServiceType" value="" />
<!-- 인증관련 Config -->
<add key="domainPrefix" value="" />
<add key="authCookie" value="TradeAuth_Cookie" />
<add key="authenticationTimeOut" value="120" />
<add key="authRedirectDomain" value="http://account.local-bdo.net/Member/Login?_returnUrl=https%3A%2F%2Ftrade.local-bdo.net%2FauthCallback" />
<add key="authCheckRequestUri" value="http://api-auth.local-bdo.net/api/TradeAuth?authToken=" />
<add key="authRemoveUri" value="http://account.local-bdo.net/Member/LogOut?_returnUrl=https%3A%2F%2Flocal-account.local-bdo.net" />
<!-- UTC 시간 설정 config 시작-->
<!-- 타임존 사용시 -->
<add key="UtcTimeZoneID" value="UTC" />
<!-- 서비스 지역별 UTC -->
<add key="ServiceUtcTime" value="0" />
<!-- 서버시간 사용유무 -->
<add key="isServerTime" value="true" />
<add key="branches" value="live" />
<add key="platform" value="TradeWeb" />
<add key="isDebug" value="true" />
<add key="isPAAccount" value="false" />
<add key="serviceRegion" value="NA" />
<add key="wwwDomain" value="account.local-bdo.net" />
</appSettings>
<connectionStrings>
<add name="TradeWebDB" connectionString="metadata=res://*/DB.TradeWebDB.csdl|res://*/DB.TradeWebDB.ssdl|res://*/DB.TradeWebDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_TRADEDB_0002;user id=CrimsonTradeReader;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add connectionString="metadata=res://*/DB.TradeWorldDB.csdl|res://*/DB.TradeWorldDB.ssdl|res://*/DB.TradeWorldDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=SA_BETA_WORLDDB_0002;persist security info=True;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" name="TradeWORLDDB" providerName="System.Data.EntityClient" />
<add connectionString="metadata=res://*/DB.TradeLogDB.csdl|res://*/DB.TradeLogDB.ssdl|res://*/DB.TradeLogDB.msl;provider=System.Data.SqlClient;provider connection string="data source=192.168.255.130,1433;initial catalog=PF_BETA_LOGDB_0001;user id=CrimsonDesert;password=BlackNo.1Game#^%;MultipleActiveResultSets=True;App=EntityFramework"" name="TradeLogDB" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" enableVersionHeader="false" maxRequestLength="10485760" />
<globalization culture="auto" uiCulture="auto" />
<sessionState cookieName="TradeAuth_Session" mode="SQLServer" sqlConnectionString="data source=192.168.255.130,1433;uid=CrimsonWeb;pwd=BlackNo.1Game#^%" />
<machineKey decryption="AES" decryptionKey="4D70FDC82D742312862F720BBF3805C65211BD765A84A1D1" validationKey="92243B9FC458265DBAE46C4D8B4D1ED00AAC9C1AACC3BE1F16002FE0A39553C8BC8999E4B8304230768D2DE74D6FB1E2DA02BA420733B85E8E08ABBAFDDDC93E" />
<httpCookies domain="local-bdo.net" requireSSL="false" />
</system.web>
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="false">
<requestLimits maxAllowedContentLength="1073741824" maxQueryString="1048567" />
<verbs allowUnlisted="false">
<add verb="GET" allowed="true" />
<add verb="POST" allowed="true" />
</verbs>
</requestFiltering>
</security>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/error" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Server" />
<remove name="X-AspNetMvc-Version" />
<remove name="X-AspNet-Version" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Код:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<!-- 베타 -->
<WorldMarketServerInfo ServerType="0" IsInitHistory="True" IsTimerSet="True" Ip="192.168.255.130" AllowMainGroupNo="1|5|10|15|20|25|30|35|40|45|50|55|60|65|70|75|80"/>
</root>
Чтобы поддельный домен работал, вам необходимо добавить его в файл хостов сервера и машины, на которой вы запускаете свой клиент. Это должен сделать каждый человек, который хочет подключиться к вашему серверу и использовать центральный рынок вашего сервера.
Чтобы быстро добраться до файла, одновременно нажмите клавиши Windows и R, появится новое окно.
Там вы вставляете эту строку и нажимаете ввод «%windir%\system32\drivers\etc» без кавычек. Откроется папка, в которой находится файл хостов. Вы можете открыть файл в любом текстовом редакторе, но имейте в виду, что вам обычно нужны права администратора, чтобы снова сохранить файл в том же месте.
Там вы просто добавляете три строки, несколько строк уже должны быть на стороне сервера, чтобы что-то заблокировать. У клиента это обычно просто комментарии. Добавьте IP-адрес перед тем, где находится домашний веб-сайт, вкладку, а затем поддомен вашего веб-сайта.
192.168.255.130 api-trade.local-bdo.net
192.168.255.130 game.local-bdo.net
192.168.255.130 trade.local-bdo.net
6. Сообщите клиенту, где находится рынок
Теперь только вашему игровому клиенту нужно знать, где искать Центральный рынок. Откройте service.ini вашего клиента и под «NA» вам нужно добавить две строки, чтобы полный файл выглядел следующим образом:
Код:
[SERVICE]
TYPE=NA
RES=_EN_
nationType=1
[NA]
AUTHENTIC_DOMAIN=192.168.255.130
AUTHENTIC_PORT=8888
viewTradeMarketUrl=http://trade.local-bdo.net/
gameTradeMarketUrl=http://game.local-bdo.net/
Просто подождите немного после входа в игру, прежде чем пробовать ее, вы всегда получите две или три ошибки, если вы первый человек, пытающийся открыть Центральный рынок в первый раз после загрузки сервера. Это будет происходить всегда и кажется нормальной частью процесса инициализации.
Веб-сайты обычно генерируют файлы журналов на диске C:. Новая папка должна создаваться всякий раз, когда веб-сайты что-то делают или вы пытаетесь получить к ним доступ из игры. Папка называется «palog», и внутри нее вы должны найти еще три папки: «api-trade», «gameweb», «tradeweb». Существуют файлы журналов Json, в которых регистрируются все действия, выполняемые в Интернете, от запуска до регистрации ошибок, когда что-то работает не так, как вы хотите.
Если вы получаете сообщение об ошибке аутентификации, это, вероятно, означает, что ваш клиент отправляет недействительную информацию для аутентификации и, возможно, его нельзя использовать. Пользуюсь клиентом из пака и все работает нормально.
Если вы получили ошибку «uspIsGameMaster», которая ожидает «atNationCode», но она не была предоставлена, сообщите мне, что у меня есть решение для этой проблемы.
Я надеюсь, что теперь это поможет всем попытаться настроить работающий центральный рынок для своего сервера.