После очередной недели отладки я разобрался! Оказывается, есть дополнительный тип работника, gevent_pywsgi
. Использование этого типа работника увеличило примерно в 10 раз, до уровня, который я бы посчитал приемлемым.
Мое тестирование не показало различий в производительности между sync
работником и gevent
работником, поэтому я все еще не уверен, что там происходит, или каково намерение gevent
рабочего типа.
in the ServiceReferences.ClientConfig file of the Silverlight client app that the "Binding" tag only allows basicHttpBinding and NOT wsHttpBinding. Does this mean that you can not secure a Silverlight-Enabled WCF Service?
No, it doesn't mean that. You can have a basicHttpBinding
and still assign transport-level security (HTTPS with SSL) to it. That shouldn't be a problem.
Marc
PS: Many one of those links gives you more insight and the proverbial "AHA!" :-)
Есть три ключевых мест, которые я настраиваю для использования https в моих собственных приложениях.
Web.config
В теге поведения включите эту строку:
<serviceMetadata httpsGetEnabled="true"/>
Для конечной точки MEX убедитесь, что вы используете протокол https:
<endpoint address="mex" binding="mexHttpsBinding"
contract="IMetadataExchange" />
Создайте пользовательская привязка. Важная часть - транспортная безопасность:
<basicHttpBinding>
<binding name="myServicesBinding">
<security mode="Transport"/>
</binding>
</basicHttpBinding>
Вы также можете включить обычные средства авторизации:
<authorization>
<allow users="?"/>
<deny users="*"/>
</authorization>
Silverlight
На стороне Silverlight либо укажите ServiceReference на теперь уже защищенную службу, либо установите соединения вручную в коде. файл ServiceReferences.ClientConfig должен содержать информацию о безопасности:
<security mode="Transport"/>
И версия кода выглядит так:
BasicHttpBinding b = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
Возможно, есть более сложные вещи, которые можно сделать, но этого должно хватить для большинства людей.
WS * не поддерживается в Silverlight - просто измените URL-адрес в конфигурации клиента на https: // url - это все, что вы можете сделать