Как записать веб-сервис для Google App Engine? [закрытый]

Этот пост предназначен как расширение для ответа @Matt Howells, особенно для тех, кто сталкивается с проблемами с использованием объектов Job в Vista или Win7, особенно если вы получаете ошибку отказа в доступе («5») при вызове AssignProcessToJobObject.

tl; dr

Чтобы обеспечить совместимость с Vista и Win7, добавьте следующий манифест в родительский процесс .NET:



  
    
      
        
      
    
  
  
    
    
    

    
      
      
      
      
    
  

Обратите внимание, что когда вы добавьте новый манифест в Visual Studio 2012, он будет содержать вышеприведенный фрагмент, поэтому вам не нужно его копировать из прослушивания. Он также будет содержать узел для Windows 8.

полное объяснение

Ваша ассоциация заданий завершится неудачей с ошибкой отказа в доступе, если процесс, который вы запускаете, уже связан с другим заданием. Войдите в помощник по совместимости программ, который, начиная с Windows Vista, назначит все виды процессов для своих собственных заданий.

В Vista вы можете пометить приложение, которое будет исключено из PCA, просто включив манифест приложения. Visual Studio, похоже, делает это для приложений .NET автоматически, поэтому вы в порядке.

Простой манифест больше не сокращает его в Win7. [1] Там вам нужно конкретно указать, что вы совместимы с Win7 с тегом в манифесте. [2]

Это заставило меня беспокоиться о Windows 8. Должен ли я снова изменить свой манифест? Видимо, в облаках наблюдается перерыв, поскольку Windows 8 теперь позволяет процессу принадлежать к нескольким заданиям. [3] Так что я еще не тестировал его, но я думаю, что это безумие закончится, если вы просто включите манифест с информацией supportedOS.

Совет 1: Если вы разрабатываете. NET с Visual Studio, как я был здесь, [4], есть несколько полезных инструкций о том, как настроить манифест приложения.

Совет 2: Будьте осторожны при запуске приложения из Visual Studio. Я обнаружил, что после добавления соответствующего манифеста у меня все еще были проблемы с PCA при запуске из Visual Studio, даже если я использовал «Старт без отладки». Однако запуск моего приложения из Explorer. После ручного добавления devenv для исключения из PCA с помощью реестра запускаются также приложения, в которых использовались объекты Job from from VS. [5]

Совет 3: Если вы когда-нибудь захотите узнать, является ли ваша проблема PCA, попробуйте запустить приложение из командной строки или скопируйте программу на сетевой диск и запустите ее оттуда. PCA автоматически отключается в этих контекстах.

[1] http://blogs.msdn.com/b/cjacks/archive/2009/06/18/pca-changes-for-windows -7-how-to-tell-us-you-are-not-an-installer-take-2-потому-we-changed-the-rules-on-you.aspx

[2] http://ayende.com/blog/4360/how-to-opt-out-of-program-compatibility-assistant

[3] ] http://msdn.microsoft.com/en-us/library/windows/desktop/ms681949 (v = vs.85) .aspx : «Процесс может быть связан с более чем одним заданием в Windows 8 "

[4] Как вставить манифест приложения в приложение с помощью VS2008?

[5] Как остановить Visual Studio отладчик, начинающий мой процесс в объекте задания?

32
задан bruntime 12 June 2017 в 15:53
поделиться

3 ответа

Мне было любопытно на предмет этого самому и не нахождения чего-либо, что я решил попытаться заставить что-то работать. Короткий ответ - то, что оказывается, что сервис SOAP может на самом деле быть сделан с помощью последней альфы библиотека ZSI . Однако это не просто, и я не сделал намного больше, чем простой запрос, таким образом, это могло развалиться с составным типом. Я попытаюсь найти время, чтобы писать учебное руководство о том, как сделать это и отредактировать этот ответ с большим количеством детали.

, Если это не трудное требование, я сделал бы то, что говорит jamtoday, и пойдите с сервисом RPC или REST. SOAP путь мог быть заполнен проблемой.

Обновление: Поскольку любой заинтересовал, я записал учебное руководство о том, как развернуть сервис SOAP на Google App Engine . Это - долгий процесс, таким образом, я просто связываюсь с ним вместо того, чтобы вставить все это здесь.

17
ответ дан 27 November 2019 в 21:15
поделиться

Если Вы хотите сделать что-то с Механизмом Приложения а именно, существуют библиотеки, которые сделают его намного быстрее на Вашем конце. Я рекомендовал бы смотреть на XML-RPC и примеры REST.

http://appengine-cookbook.appspot.com/recipe/xml-rpc-server-using-google-app-engine/

http://github.com/fczuardi/gae-rest/tree/master

4
ответ дан 27 November 2019 в 21:15
поделиться

Вот веб-сервисы Python проект, который мог бы быть полезным.

РЕДАКТИРОВАНИЕ

И вот демонстрация потребления SOAP ....

0
ответ дан 27 November 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: