使用WCF .net 4.0找不到端点

时间:2012-01-23 18:53:59

标签: asp.net .net wcf .net-4.0

我一直在捣乱我的大脑以解决这个问题。我在这里遵循MSDN“简化配置”模型,对于.net 4.0 - http://msdn.microsoft.com/en-us/library/ee358768.aspx

当我尝试点击网址时出现此错误 - http://localhost:62392/GetBuildings.svc/GetBuildings?numberOfPeople=2,4&amountOfTime=1&needComputer=true&dateSelected=12/1/2012

该服务似乎实际运行,我没有完整的IIS错误,但我没有得到预期的数据。如何评估我的端点是否设置正确?

我的web.config -

<?xml version="1.0"?>
<configuration>
    <system.web>
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
    <authentication mode="None"/>
</system.web>
<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="webHttpBehavior">
                <webHttp/>
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled="True"/>
                <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <bindings>
        <webHttpBinding>
            <binding name="webHttpBindingJsonP" crossDomainScriptAccessEnabled="true"></binding>
        </webHttpBinding>
    </bindings>
    <protocolMapping>
        <add scheme="http" binding="webHttpBinding" bindingConfiguration="webHttpBindingJsonP" />
    </protocolMapping>
</system.serviceModel>
</configuration>

我的界面 -

Imports System.ServiceModel
Imports System.ServiceModel.Web

<ServiceContract()>
Public Interface IGetLibrariesService
    <OperationContract(Name:="LibraryData")> _
    <WebGet(ResponseFormat:=WebMessageFormat.Json)> _
    Function GetLibraries(ByVal numberOfPeople As String, ByVal amountOfTime As   Integer, ByVal needComputer As Boolean, ByVal dateSelected As String) As BuildingReturnData
End Interface

最后,我的代码 -

<DataContract()>
Public Class BuildingReturnData
    <DataMember()>
    Public libData As List(Of LibraryMobileData)

    <DataMember()>
    Public numberOfRooms As List(Of Integer)

    <DataMember()>
    Public totalRecordCount As Integer
End Class

<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allo    wed)>
Public Class MeetingRooms : Implements IGetLibrariesService
    Private _libData As New List(Of LibraryMobileData)
    Private _roomCountData As New List(Of Integer)

    Public Function GetBuildings(numberOfPeople As String, amountOfTime As Integer, needComputer As Boolean, dateSelected As String) As BuildingReturnData Implements     IGetLibrariesService.GetLibraries
        Dim libTemp As New LibraryMobileData
        Dim startPeople, endPeople, recordCount As Integer
        Dim numberSplitArr As String()

        numberSplitArr = Split(numberOfPeople, ",")

        startPeople = numberSplitArr(0)
        endPeople = numberSplitArr(1)

        For x = 0 To endPeople
            libTemp.LibraryId = x
            libTemp.Name = "library " & x
            libTemp.Latitude = 39.167107
            libTemp.Longitude = -86.534359

            _libData.Add(libTemp)
            _roomCountData.Add(x + startPeople)
            recordCount = x
        Next

        Dim temp As New BuildingReturnData
        temp.libData = _libData
        temp.numberOfRooms = _roomCountData
        temp.totalRecordCount = recordCount

        Return temp
    End Function
End Class

0 个答案:

没有答案