2011-05-12 37 views
0

絕對在我的智慧結束在這裏。這應該很簡單。在創建新用戶帳戶的頁面中,我們有一個只有少許可用用戶的數據庫。爲了簡化獲取新用戶的電子郵件地址的正確性,我們希望使用自動完成擴展文本框。ASP.Net AutoCompleteExtender VB WebMethod沒有觸發 - 爲什麼?

現在我知道WebMethods正在工作,因爲我有一個級聯下拉鍊接到另一個頁面中的Web方法。

由於我剛剛開始在這個頁面上,代碼很簡單。

頁面本身:

<cc1:ToolkitScriptManager ID="ScriptManager2" runat="server"/> 
<p></p> Please enter new user's Email: 
<asp:TextBox ID="txtUser" runat="server" /> 
<cc1:AutoCompleteExtender runat="server" ID="autUser" TargetControlID="txtUser" 
     ServiceMethod="ScanGALUsers" ServicePath="~/AutoScan.asmx" 
     MinimumPrefixLength="3" CompletionSetCount="150" /> <p></p> 

.asmx文件很簡單:

<%@ WebService Language="VB" CodeBehind="~/App_Code/VB_Code/AutoScan.vb" Class="AutoScan" %> 

的的WebMethod:

<System.Web.Script.Services.ScriptService()> _ 
<WebService(Namespace:="http://tempuri.org/")> _ 
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ 
Public Class AutoScan 
    Inherits System.Web.Services.WebService 

    <WebMethod()> _ 
    Public Shared Function ScanGALUsers(ByVal strPrefix As String, ByVal intMaxCount As Integer) As String() 
     Dim arlResults As New ArrayList 
     Dim intCount As Integer 
     Dim dt As DataTable 
     Dim colParameters As New SortedList 
     SysDA.LogDebug("ScanGALUsers called with parameters: " & strPrefix & " and count of " & intMaxCount.ToString) 
     ... Deleted for brevity ... 
     If intCount > 0 Then 
      Dim arrResults(intCount - 1) As String 
      arrResults = arlResults.ToArray(GetType(System.String)) 
      Return arrResults 
     Else 
      Return Nothing 
     End If 
    End Function 

End Class 

我還沒有得到的LogDebug聲明。我已經使用了所有相同的樣板代碼(繼承,'WebService'標籤等),在其他WebMethod中進行了相應的Class類名稱更改,但這確實讓我難以置信。

我錯過了什麼,我甚至沒有使它的方法?

+0

您可以檢查Fiddler(或FireBug /其他替代品)並查看是否有正在對服務器進行的實際呼叫? – Jonas 2011-05-12 18:33:35

+0

這裏的限制性很強的環境(軍事基地)。無法安裝未獲批准的工具。它似乎並沒有進行調用,因爲我在方法中設置了斷點,並且它永遠不會到達那裏。 (在不同的WebMethod *中執行相同的操作*)* – David 2011-05-12 18:52:22

+0

調用asmx文件可能實際上正在完成,但是調用的結果沒有通過,導致404或500.如果我是你,我會檢查電話是否正在發生,如果他們是,他們的http響應代碼是什麼。 編輯:Chrome是否獲得批准?它具有類似的功能。 能夠看到客戶端和服務器之間的流量的東西真的很方便,像這樣的問題。 – Jonas 2011-05-12 18:54:28

回答

0

你有沒有解決過這個問題?您是否嘗試從您的WebService聲明中刪除Shared?這對我來說很有用(我不知道爲什麼!)。

+0

是的 - 我煮了web服務,只是返回一些硬編碼的條目,刪除「共享」它*仍然*沒有開火。我會責怪它在這裏的安全策略和一些我無法控制的環境設置,除非*其他* webservices工作... *非常令人沮喪 - 但感謝這個想法。 – David 2011-10-25 18:07:11