0
我剛剛將我們的Web應用程序數據庫從sybase sql任意位置11遷移到SQL Server 2008 R2 express,當我嘗試編譯與SQL Server接口的WCF服務時,我出現了多個錯誤,其中最明顯的是下面的錯誤當我們的數據庫是sybase時,我從來沒有看到過這個問題。無效的參數錯誤
Error 5 The best overloaded method match for
'GlobeMailServiceLibrary.GMDatabaseService.KioskDataSetTableAdapters.Kiosk.CreateFolder(int?,
string, bool?, bool?, ref int?)' has some invalid arguments
C:\WebMailDev\Code\GlobeMailServiceLibrary\GMDatabaseService\GMDatabaseService.40
13 GlobeMailServiceLibrary
這是從哪兒存儲過程調用和執行WCF服務方法: -
private int CreateFolder(int iUser, string strFolder, bool bUserCreate, bool bOutgoing)
{
int iFolder;
DBEncoder.EncodeObject(ref strFolder);
KioskAdapter.CreateFolder(iUser, strFolder, bUserCreate, bOutgoing, out
iFolder);
return iFolder;
}
這裏是存儲過程定義: -
create procedure dbo.CreateFolder(@v_userID integer,@v_foldername varchar(512),@v_IsUserDefined
bit,@v_IsOutGoing bit,@v_folderID integer Output)
AS
begin
--set option MAX_STATEMENT_COUNT = 0;
--set option MAX_CURSOR_COUNT = 0;
insert into GCK_Folder(Foldername,IsUserDefined,IsOutGoing,UserID) values(
@v_foldername,@v_IsUserDefined,@v_IsOutGoing,@v_userID) ;
set @v_folderID = @@IDENTITY
end
go
我註釋掉設置OPTION MAX_STATEMENT_COUUNT和MAX_CURSON_COUNT,因爲我不知道SQL Server 2008 R2 express中Sybase的等效命令。
嗯...例外是告訴你,問題出現在'CreateUser'中,所以也許這就是你應該開始尋找的地方。換句話說,我不認爲'CreateFolder'是這裏的問題。 –
這是一個純粹的C#問題,與WCF,SQL Server或ASP.NET無關。 –
您需要將代碼發佈到'CreateUser'。 – doctorless