Webservice REST does not return XML in IIS 8.0

Asked

Viewed 1,092 times

3

The webservice in visual studio 2013 works beautifully. I added it to the IIS of windows 8.1, and when it comes time to send the data via REST, it gives me this error:

The server encountered an error while processing the request. See the service help page to build valid requests for the service.

Method: GET

Webconfig:

<?xml version="1.0"?>
<configuration>

  <connectionStrings>
    <add name="BD_Super_V8ConnectionString" connectionString="Data Source=NUNO-PC\SQLEXPRESS;Initial Catalog=BD_Super_V8;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <compilation targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <!-- REST -->
    <services>
      <service name="WcfServicePedido_v7.ServicePedido">
        <endpoint name="RestEndPoint"
                  contract="WcfServicePedido_v7.IServicePedido"
                  binding="webHttpBinding"
                  address=""
                  behaviorConfiguration="restBehavior" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="restBehavior">
          <webHttp helpEnabled="true"/>
        </behavior>
      </endpointBehaviors>
      <!-- REST -->
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>

Service: [Servicecontract]

public interface IServicePedido
{
    /// <summary>
    /// Retorna todos os pedidos (JSON)
    /// </summary>
    /// <returns></returns>
    [WebGet(UriTemplate = "maquinas/?volta={volta}",
        RequestFormat = WebMessageFormat.Xml,
        ResponseFormat = WebMessageFormat.Xml)]
    [OperationContract]
    List<VoltaPDA> GetAllMaquinasVolta(int volta);
}

I deleted it and re-posted Webservice: Now give me this mistake:

The server encountered an error Processing the request. Please see the service help page for Constructing Valid requests to the service.

LOG FILE:

2014-03-07 10:53:43 ::1 GET /ServicePedido.svc/help - 8095 - ::1
 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/33.0.1750.146+Safari/537.36
 http://localhost:8095/ServicePedido.svc/maquinas/?volta=1 200 0 0 24
  • Can’t extract a more detailed error message? Please see if the error is not a 404, even if for a valid route

  • You are working with POST requests?

  • I am working in an environment similar to yours and this type of problem is always due to lack of configuration in the ISS, or some permission, problems related to it. And how did @Tiago mention it is possible to get more details about the bug? So I can help you?

  • the method I use is with GET requests. The only error you give me is what I mentioned above. I also think the error will be the IIS settings.

  • How do I send the data via REST? A client? Post the code. A POST request? GET? Post the request. Uploaded headers, Content-type, Accept, error log details, application.wadl with the relevant snippet. It is very difficult to help without having enough information.

3 answers

1


Apparently your WCF runs and error occurs in Runtime. The first step is to try to change the error message to something more specific and thus be able to locate the problem. Make sure you have debug enabled in the . svc file

<%@ ServiceHost Language="C#" Debug="true" ... %>

Then in the file . config change this option to true

<serviceDebug includeExceptionDetailInFaults="true" />

It may still be necessary to enable wcf tracing to go deeper, follow an article that helps with this: http://msdn.microsoft.com/pt-br/library/ms733025(v=vs.110). aspx

Try to do the following too:

  • On IIS in App Pools
  • Select the one your WCF is using
  • Right-click and go to Advanced Settings
  • Identity, switch to Networkservice

0

Dude I’m new to this webserver business but from what I’ve seen your method gets an argument as a parameter. I don’t know if I’m talking nonsense but from what I understood when I was studying this can only be done via Post and how you mentioned it yourself he sends via Get. And actually conceptually this is the safest way.

0

The server encountered an error while processing the request. See the page service help to build valid requests for service. A exception message is 'Cannot open database "Bd_super_v8" requested by the login. The login failed. Login failed for user 'IIS APPPOOL Webservice'. '. Refer to server logs to get more details. The exception stack tracking is:

At System.Data.Sqlclient.SqlInternalConnection.Onerror(Sqlexception Exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 Retry, Dbconnectionoptions userOptions, Dbconnectioninternal& Connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, Taskcompletionsource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 Retry, Dbconnectionoptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 Retry) at System.Data.Sqlclient.SqlConnection.Open() at System.Data.Linq.SqlClient.Sqlconnectionmanager.Useconnection(Iconnectionuser user) at System.Data.Linq.SqlClient.Sqlprovider.get_IsSqlCe() at System.Data.Linq.SqlClient.Sqlprovider.Initializeprovidermode() at System.Data.Linq.SqlClient.Sqlprovider.System.Data.Linq.Provider.IProvider.Execute(Expression query) at System.Data.Linq.Dataquery1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Collections.Generic.List1.ctor (Ienumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source) at Syncinvokegetallmaquinasvolta(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.Invokebegin(Messagerpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Processmessage5(Messagerpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Processmessage31(Messagerpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

This error was returned thanks to its help Iuristona, but still does not understand why not be able to login to the database, when in visual studio works beautifully. It has to do with permissions?

  • I will edit my previous reply, to add an attempted solution

Browser other questions tagged

You are not signed in. Login or sign up in order to post.