Ответ 1
Единственный способ воспроизвести описанный вами опыт - это намеренно создать конфликт портов. По умолчанию веб-сервер RavenDB размещается на порту 8080, поэтому, если вы не меняете порт ворона, вы должны разместить приложение WebApi на порту 8080. Если это не так, сообщите мне в комментариях, но я буду считать что это так.
Все, что вам нужно сделать, чтобы изменить использование порта Raven, - это изменить значение порта перед вызовом метода Initialize
.
Добавьте этот RavenConfig.cs
файл в папку App_Startup
:
using Raven.Client;
using Raven.Client.Embedded;
namespace <YourNamespace>
{
public static class RavenConfig
{
public static IDocumentStore DocumentStore { get; private set; }
public static void Register()
{
var store = new EmbeddableDocumentStore
{
UseEmbeddedHttpServer = true,
DataDirectory = @"~\App_Data\RavenDatabase",
// or from connection string if you wish
};
// set whatever port you want raven to use
store.Configuration.Port = 8079;
store.Initialize();
this.DocumentStore = store;
}
public static void Cleanup()
{
if (DocumentStore == null)
return;
DocumentStore.Dispose();
DocumentStore = null;
}
}
}
Затем в файле Global.asax.cs
сделайте следующее:
protected void Application_Start()
{
// with your other startup registrations
RavenConfig.Register();
}
protected void Application_End()
{
// for a clean shutdown
RavenConfig.Cleanup();
}