He intentado seguir este tutorial para implementar una muestra de WCF en IIS. No puedo hacer que funcione. Este es un sitio alojado, pero tengo acceso de Administrador de IIS al servidor. Sin embargo, en el paso 2 del tutorial, no puedo "crear una nueva aplicación IIS que se encuentre físicamente en este directorio de aplicaciones". Parece que no puedo encontrar un elemento de menú, elemento de menú contextual o qué no para crear una nueva aplicación. He estado haciendo clic con el botón secundario en todas partes como loco y todavía no puedo descubrir cómo crear una nueva aplicación. Supongo que ese es probablemente el problema raíz, pero probé algunas otras cosas (que se describen a continuación) en caso de que ese no sea realmente el problema. Aquí está una foto de lo que veo en el Administrador de IIS, en caso de que mis palabras no hacen justicia:Implementación de WCF Tutorial App en IIS7: "No se pudo encontrar el tipo"
No add Application Here http://www.freeimagehosting.net/uploads/d6edbaaf3c.png
esto es "desplegado" en http://test.com.cws1.my-hosting-panel.com/IISHostedCalcService/Service.svc. El error dice:
The type 'Microsoft.ServiceModel.Samples.CalculatorService',
provided as the Service attribute value in the ServiceHost directive,
or provided in the configuration element
system.serviceModel/serviceHostingEnvironment/serviceActivations
could not be found.
También probé para crear un directorio virtual (IISHostedCalc) en DotNetPanel que apunta a IISHostedCalcService. Cuando navego a http://test.com.cws1.my-hosting-panel.com/IISHostedCalc/Service.svc, entonces hay un error diferente:
This collection already contains an address with scheme http.
There can be at most one address per scheme in this collection.
Curiosamente, si hago clic en Ver aplicaciones, parece que el directorio virtual es una aplicación (ver imagen abajo) ... aunque, como según el mensaje de error anterior, no funciona.
Is this an app or not? http://www.freeimagehosting.net/uploads/f3230be046.png
De acuerdo con el tutorial, no hubo compilar involucrados; Me acaba de caer los archivos en el servidor como sigue dentro de la carpeta IISHostedCalcService:
service.svc
Web.config
<dir: App_Code>
Service.cs
service.svc contiene:
<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService"%>
(he intentado con comillas en el atributo C#, ya que esto parece un poco extraño sin comillas, pero no había ninguna diferencia)
Web.config contiene:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService">
<!-- This endpoint is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- The mex endpoint is explosed at http://localhost/servicemodelsamples/service.svc/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Service.cs contiene:
using System;
using System.ServiceModel;
namespace Microsoft.ServiceModel.Samples
{
[ServiceContract]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
public double Divide(double n1, double n2)
{
return n1/n2;
}
}
}
Por favor, intente Agregar aplicación (la respuesta de JDC) antes de hacer todo esto ... es mucho más fácil y trabajado para mí! – JoelFan