Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF. Чтение из блоб работает в selfhosted но не работает в IIS. / 3 сообщений из 3, страница 1 из 1
29.11.2012, 09:15
    #38057369
Ekstrem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF. Чтение из блоб работает в selfhosted но не работает в IIS.
У меня есть такой сервис:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[ServiceContract]
    interface IContentControler
    {
        [WebGet(
            UriTemplate = "b64/{id}",
            BodyStyle = WebMessageBodyStyle.Bare,
            RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json)]
        string GetContentAsBase64(string id);
    }



С вот такой соответственно реализацией:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public string GetContentAsBase64(string id)
        {
            Guid guid;
            if (!Guid.TryParse(id, out guid))
                //return null;
                guid = Guid.Empty;

            blobSrorage b;

            using (var context = new InteractiveMapEntities())
            {
                Contents c;
                try
                {
                    c = context.Contents.Where(λ => λ.ID == guid).Select(λ => λ).Single();
                }
                catch
                {
                    //Till debag
                    c = context.Contents.Select(λ => λ).First();
                }
                if (c == null)
                    return null;
                b = ReadContentFromDB(c.ID);
                WebOperationContext.Current.OutgoingResponse.ContentType = c.ContentType + '/' + Path.GetExtension(c.Name).Substring(1);
            }



Конфигурация вот такая:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <!--handlers>
      <add name="ExtensionlessUrl-Integrated-4.0"
           path="*."
           verb="GET,HEAD,POST,DEBUG,PUT,DELETE,UPDATE,OPTIONS"
           type="System.Web.Handlers.TransferRequestHandler"
           preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers-->
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*,application/octet-stream,text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1" />
        <add name="Access-Control-Allow-Methods" value="GET,HEAD,POST,DEBUG,PUT,DELETE,UPDATE," />
        <add name="Access-Control-Allow-Headers" value="Content-Type, Accept, SOAPAction, Origin"/>
        <add name="Access-Control-Max-Age" value="1728000" />
      </customHeaders>      
    </httpProtocol>    
  </system.webServer>
  <system.web>
    <customErrors mode="On"/>
    <pages validateRequest="false"/>
    <compilation debug="true" />
    <httpRuntime maxUrlLength="2048" enableHeaderChecking="false" maxRequestLength="2000000"/>
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" 
             type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
             serviceUri="" />
      </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
      <providers>
        <add name="ClientRoleProvider"
             type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
             serviceUri=""
             cacheTimeout="86400" />
      </providers>
    </roleManager>
  </system.web>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="webBind"
                 transferMode="Buffered"
                 crossDomainScriptAccessEnabled="true"
                 receiveTimeout="01:05:00"
                 maxReceivedMessageSize="2147483647"
                 maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647">
          <readerQuotas maxArrayLength="2147483647"
                        maxStringContentLength="2147483647" />
          <security mode="None" />
        </binding>
      </webHttpBinding>
      <netHttpBinding>
        <binding name="wsBind" messageEncoding="Text">
          <security mode="None"/>
        </binding>
      </netHttpBinding>
    </bindings>
    <services>
      <service name="ServiceLibrary.Business_Layer.ContentControler">
        <endpoint address=""
                  behaviorConfiguration="webEndPointBehavior"
                  binding="webHttpBinding"
                  bindingConfiguration="webBind"
                  contract="ServiceLibrary.Service_Layer.IContentControler" />
        <endpoint address="ws" binding="netHttpBinding" bindingConfiguration="wsBind" contract="ServiceLibrary.Service_Layer.IContentControler"/>
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost/InteractiveMap" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webEndPointBehavior">
          <webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json" defaultBodyStyle="Wrapped"/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceThrottling maxConcurrentCalls="64" maxConcurrentInstances="64" maxConcurrentSessions="64"/>
          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="traceListener"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "R:\wcf.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration>



Проблема:
В Self-hosted режиме приложение всё мне возвращает как положено. Из под IIS возвращает ошибку 400.

Думаю ноги растут из каких то секурити настроек IIS, но к сожалению сам я всё ещё не понял что именно не так. Буду очень благодарен за совет.
...
Рейтинг: 0 / 0
05.12.2012, 12:06
    #38065889
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF. Чтение из блоб работает в selfhosted но не работает в IIS.
Ekstrem,
Ошибка 400 - это
Неверный запрос. Серверу не удалось обработать запрос из-за синтаксических ошибок. Клиент не должен повторять запрос без изменений.
Что говорят логи ?
...
Рейтинг: 0 / 0
05.12.2012, 19:44
    #38066905
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF. Чтение из блоб работает в selfhosted но не работает в IIS.
какой пул установлен в IIS?
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF. Чтение из блоб работает в selfhosted но не работает в IIS. / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]