На первый взгляд, все выглядит правильно:
вы получили:
config.MapHttpAttributeRoutes();
- настройте маршрут атрибута config.Routes.MapHttpRoute(
- установить маршрут по умолчанию GlobalConfiguration.Configure(WebApiConfig.Register);
- зарегистрироваться при запуске , чтобы он работал.
Думаю, проблема в том, как вы ее называете
Маршрутизация WebAPI немного отличается от MVC
, например:
В методе get get маршрут установлен как показано ниже
[HttpGet, Route("api/get")]
, поэтому вы должны назвать его {host}/api/get
, используя метод GET http
на снимке экрана, который вы вызываете с помощью {host}/api/get/Get
- который не будет работать, потому что ни один маршрут не будет соответствовать
То же самое для вашего метода POST
Так что попробуйте еще раз, и вы сможете добраться до него
Вот некоторый пример кода, который примерно достиг бы этого, минус проверка ошибок любого рода. Также, пожалуйста, убедитесь, что лицензия на встраиваемую программу допускает такого рода использование.
// extracts [resource] into the the file specified by [path]
void ExtractResource( string resource, string path )
{
Stream stream = GetType().Assembly.GetManifestResourceStream( resource );
byte[] bytes = new byte[(int)stream.Length];
stream.Read( bytes, 0, bytes.Length );
File.WriteAllBytes( path, bytes );
}
string exePath = "c:\temp\embedded.exe";
ExtractResource( "myProj.embedded.exe", exePath );
// run the exe...
File.Delete( exePath );
Единственная сложная часть - получение правильного значения для первого аргумента ExtractResource
. Он должен иметь форму «namespace.name», где namespace является пространством имен по умолчанию для вашего проекта (найдите его в Project | Properties | Application | Default namespace). Вторая часть - это имя файла, который вам нужно будет включить в ваш проект (не забудьте установить опцию сборки на «Embedded Resource»). Если вы поместите файл в каталог, например «Ресурсы», то это имя станет частью имени ресурса (например, «myProj.Resources.Embedded.exe»). Если у вас возникли проблемы, попробуйте открыть скомпилированный бинарный файл в Reflector и загляните в папку Resources. Перечисленные здесь имена - это имена, которые вы передадите в GetManifestResourceStream
.
Просто добавьте его в свой проект и установите для параметра сборки значение «Встроенный ресурс»
Является ли исполняемый файл управляемой сборкой? Если это так, вы можете использовать ILMerge для объединения этой сборки с вашей.