В Visual Studio я создал консольное приложение с API (8 apiControllers). На моей локальной машине все работает нормально. На машине моего коллеги тоже нет проблем. При копировании exe-файла в WindowsServer2012R2 возникает проблема. API слушает порт 44311. Exe работает. Когда я смотрю с помощью netstat, я вижу, что порт 44311 слушает. Но при попытке получить какой-либо ответ в браузере ничего не появляется (в браузере я должен ввести url https://localhost: 44311 / BitVise / Test ). В API есть сваггер, но в браузере он также ничего не возвращает, кроме ошибки «этот сайт недоступен».
Некоторый код: Program.cs:
using System;
using System.Configuration;
namespace BitViseApi
{
class Program
{
static void Main(string[] args)
{
string domainAddress = ConfigurationManager.AppSettings["domainAddress"];
using (WebApp.Start(url: domainAddress))
{
Console.WriteLine("Service Hosted " + domainAddress);
System.Threading.Thread.Sleep(-1);
}
}
}
}
Запуск .cs:
using Owin;
using System.Web.Http;
namespace BitViseApi
{
class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
HttpConfiguration config = new HttpConfiguration();
config.EnableCors();
config.Routes.MapHttpRoute(
name: "createUserApi",
routeTemplate: "Bitvise/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// This is the call to our swashbuckle config that needs to be called
SwaggerConfig.Register(config);
appBuilder.UseWebApi(config);
}
}
}
Начало BitViseController.cs:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Collections;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Cors;
using BssCfg815Lib;
using System.Security.Cryptography;
using System.Text;
using NLog;
namespace BitVise
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class VirtAccountsController : ApiController
{
public IEnumerable<LocalVirtAccount815> Get(string username, string password)
{
string result;
BitViseHelper helper = new BitViseHelper();
helper.Log(LogLevel.Info, "Call to VirtAccounts. Login: username=" + username + ", password=" + password);
bool loginOkay = helper.CheckUser(username, password, out result);
if (!loginOkay)
{
helper.Log(LogLevel.Error, " Login failed: " + result);
return null;
}
helper.Log(LogLevel.Info, " Login succeeded.");
List<LocalVirtAccount815> virtAccounts = helper.ListVirtAccounts();
helper.Log(LogLevel.Info, " " + virtAccounts.Count + " Virtual accounts retrieved.");
return virtAccounts;
}
} // VirtAccountsController
...
...
Изображение, показывающее, что консольное приложение работает, прослушивание и браузер, показывающий ошибку.
(На изображении неверный URL в браузере. Это должно быть https://localhost: 44311 / BitVise / Test , но результат тот же.)
У кого-нибудь есть идея, что я забыл или что я делаю не так?
Заранее спасибо,
Кор