當前位置:首頁 » 編程軟體 » wcf服務編程

wcf服務編程

發布時間: 2022-07-27 01:41:03

① 推薦一本講WCF比較好的書籍

wcf編程這書別人的評價挺不錯的
也算是基礎
不過內容挺多的,看的時間長了有點煩
不過,現在這書出新版本了
名字不教wcf服務編程
叫wcf編程(第二版),建議買第二版

② 初學wcf的一點疑問,求教!

每種契約的實現方式都是不同的,分別支援原來的webservice,.net remoting……那些模式。當你使用BasicHttpBinding時,的確跟.NET Webservice非常像,因為這個契約兼容.NET Webservice

③ 跪求WCF的工作原理

首先:

WCF的全稱是,Windows通信基礎的意思,是Microsoft為構建面向服務的應用程序而提供的統一編程模型,它整合.NET平台下所有和分布式系統有關的技術。

其次:

WCF本質是面向服務的。主要分為服務端和客戶端兩部分。服務端和客戶端進行通信的過程如下圖所示:

在上圖中,主機進程就是服務端,在其中需要創建服務,然後將服務通過EndPoint(終結點)與客戶端進行通信。客戶端在使用服務時,需要首先創建一個代理服務,然後調用這個代理服務。

EndPoint(終結點)在WCF中是非常重要的部分。它包含了服務地址(Address)、綁定格式(Binding)和契約(Contract)。其中,地址定義了服務的位置,綁定定義了服務通信的方式,契約定義了服務所提供的功能。為了便於記憶,我們將終結點的這三個要素簡稱為服務的ABC

服務端提供了什麼服務,都具備什麼功能,這被稱為WCF服務的契約。

WCF服務不能憑空存在。每個WCF服務都必須託管(Hosting)在一個Windows進程中,該進程被稱為宿主進程。

WCF服務宿主可以由IIS提供,可以由Windows服務提供,也可以由WindowsVista的Windows激活服務提供。其中,使用IIS託管只能使用HTTP協議。

④ 如何創建通過 WebSocket 進行通信的 WCF 服務

WebSocket是HTML5開始提供的一種瀏覽器與伺服器間進行全雙工通訊的網路技術。在WebSocket API中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。
Cocos2d-x引擎集成libwebsockets,並在libwebsockets的客戶端API基礎上封裝了一層易用的介面,使得引擎在C++, JS, Lua層都能方便的使用WebSocket來進行游戲網路通訊。
引擎支持最新的WebSocket Version 13。
在C++中使用
詳細代碼可參考引擎目錄下的/samples/Cpp/TestCpp/Classes/ExtensionsTest/NetworkTest/WebSocketTest.cpp文件。
頭文件中的准備工作
首先需要include WebSocket的頭文件。
#include "network/WebSocket.h"
cocos2d::network::WebSocket::Delegate定義了使用WebScocket需要監聽的回調通知介面。使用WebSocket的類,需要public繼承這個Delegate。
class WebSocketTestLayer : public cocos2d::Layer, public cocos2d::network::WebSocket::Delegate
並Override下面的4個介面:
virtual void onOpen(cocos2d::network::WebSocket* ws);
virtual void onMessage(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::Data& data);
virtual void onClose(cocos2d::network::WebSocket* ws);
virtual void onError(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::ErrorCode& error);
後面我們再詳細介紹每個回調介面的含義。
新建WebSocket並初始化
WebSocket.org 提供了一個專門用來測試WebSocket的伺服器"ws://echo.websocket.org"。 測試代碼以鏈接這個伺服器為例,展示如何在Cocos2d-x中使用WebSocket。
新建一個WebSocket:
cocos2d::network::WebSocket* _wsiSendText = new network::WebSocket();
init第一個參數是delegate,設置為this,第二個參數是伺服器地址。 URL中的"ws://"標識是WebSocket協議,加密的WebSocket為"wss://".
_wsiSendText->init(*this, "ws://echo.websocket.org")
WebSocket消息監聽
在調用send發送消息之前,先來看下4個消息回調。
onOpen
init會觸發WebSocket鏈接伺服器,如果成功,WebSocket就會調用onOpen,告訴調用者,客戶端到伺服器的通訊鏈路已經成功建立,可以收發消息了。
void WebSocketTestLayer::onOpen(network::WebSocket* ws)
{
if (ws == _wsiSendText)
{
_sendTextStatus->setString("Send Text WS was opened.");
}
}
onMessage
network::WebSocket::Data對象存儲客戶端接收到的數據, isBinary屬性用來判斷數據是二進制還是文本,len說明數據長度,bytes指向數據。
void WebSocketTestLayer::onMessage(network::WebSocket* ws, const network::WebSocket::Data& data)
{
if (!data.isBinary)
{
_sendTextTimes++;
char times[100] = {0};
sprintf(times, "%d", _sendTextTimes);
std::string textStr = std::string("response text msg: ")+data.bytes+", "+times;
log("%s", textStr.c_str());

_sendTextStatus->setString(textStr.c_str());
}
}
onClose
不管是伺服器主動還是被動關閉了WebSocket,客戶端將收到這個請求後,需要釋放WebSocket內存,並養成良好的習慣:置空指針。
void WebSocketTestLayer::onClose(network::WebSocket* ws)
{
if (ws == _wsiSendText)
{
_wsiSendText = NULL;
}
CC_SAFE_DELETE(ws);
}
onError
客戶端發送的請求,如果發生錯誤,就會收到onError消息,游戲針對不同的錯誤碼,做出相應的處理。
void WebSocketTestLayer::onError(network::WebSocket* ws, const network::WebSocket::ErrorCode& error)
{
log("Error was fired, error code: %d", error);
if (ws == _wsiSendText)
{
char buf[100] = {0};
sprintf(buf, "an error was fired, code: %d", error);
_sendTextStatus->setString(buf);
}
}
send消息到伺服器
在init之後,我們就可以調用send介面,往伺服器發送數據請求。send有文本和二進制兩中模式。
發送文本
_wsiSendText->send("Hello WebSocket, I'm a text message.");
發送二進制數據(多了一個len參數)
_wsiSendBinary->send((unsigned char*)buf, sizeof(buf));
主動關閉WebSocket
這是讓整個流程變得完整的關鍵步驟, 當某個WebSocket的通訊不再使用的時候,我們必須手動關閉這個WebSocket與伺服器的連接。close會觸發onClose消息,而後onClose裡面,我們釋放內存。
_wsiSendText->close();
在Lua中使用
詳細代碼可參考引擎目錄下的/samples/Lua/TestLua/Resources/luaScript/ExtensionTest/WebProxyTest.lua文件。
創建WebSocket對象
腳本介面相對C++要簡單很多,沒有頭文件,創建WebSocket對象使用下面的一行代碼搞定。 參數是伺服器地址。
wsSendText = WebSocket:create("ws://echo.websocket.org")
定義並注冊消息回調函數
回調函數是普通的Lua function,4個消息回調和c++的用途一致,參考上面的說明。
local function wsSendTextOpen(strData)
sendTextStatus:setString("Send Text WS was opened.")
end

local function wsSendTextMessage(strData)
receiveTextTimes= receiveTextTimes + 1
local strInfo= "response text msg: "..strData..", "..receiveTextTimes
sendTextStatus:setString(strInfo)
end

local function wsSendTextClose(strData)
print("_wsiSendText websocket instance closed.")
sendTextStatus = nil
wsSendText = nil
end

local function wsSendTextError(strData)
print("sendText Error was fired")
end
Lua的消息注冊不同於C++的繼承 & Override,有單獨的介面registerScriptHandler。 registerScriptHandler第一個參數是回調函數名,第二個參數是回調類型。 每一個WebSocket實例都需要綁定一次。
if nil ~= wsSendText then
wsSendText:registerScriptHandler(wsSendTextOpen,cc.WEBSOCKET_OPEN)
wsSendText:registerScriptHandler(wsSendTextMessage,cc.WEBSOCKET_MESSAGE)
wsSendText:registerScriptHandler(wsSendTextClose,cc.WEBSOCKET_CLOSE)
wsSendText:registerScriptHandler(wsSendTextError,cc.WEBSOCKET_ERROR)
end
send消息
Lua中發送不區分文本或二進制模式,均使用下面的介面。
wsSendText:sendString("Hello WebSocket中文, I'm a text message.")
主動關閉WebSocket
當某個WebSocket的通訊不再使用的時候,我們必須手動關閉這個WebSocket與伺服器的連接,以釋放伺服器和客戶端的資源。close會觸發cc.WEBSOCKET_CLOSE消息。
wsSendText:close()
在JSB中使用
詳細代碼可參考引擎目錄下的/samples/Javascript/Shared/tests/ExtensionsTest/NetworkTest/WebSocketTest.js文件。
創建WebSocket對象
腳本介面相對C++要簡單很多,沒有頭文件,創建WebSocket對象使用下面的一行代碼搞定。 參數是伺服器地址。
this._wsiSendText = new WebSocket("ws://echo.websocket.org");
設置消息回調函數
JSB中的回調函數是WebSocket實例的屬性,使用匿名函數直接賦值給對應屬性。可以看出JS語言的特性,讓綁定回調函數更加優美。四個回調的含義,參考上面c++的描述。
this._wsiSendText.onopen = function(evt) {
self._sendTextStatus.setString("Send Text WS was opened.");
};

this._wsiSendText.onmessage = function(evt) {
self._sendTextTimes++;
var textStr = "response text msg: "+evt.data+", "+self._sendTextTimes;
cc.log(textStr);

self._sendTextStatus.setString(textStr);
};

this._wsiSendText.onerror = function(evt) {
cc.log("sendText Error was fired");
};

this._wsiSendText.onclose = function(evt) {
cc.log("_wsiSendText websocket instance closed.");
self._wsiSendText = null;
};
send消息
發送文本,無需轉換,代碼如下:
this._wsiSendText.send("Hello WebSocket中文, I'm a text message.");
發送二進制,測試代碼中,使用_stringConvertToArray函數來轉換string為二進制數據,模擬二進制的發送。 new Uint16Array創建一個16位無符號整數值的類型化數組,內容將初始化為0。然後,循環讀取字元串的每一個字元的Unicode編碼,並存入Uint16Array,最終得到一個二進制對象。
_stringConvertToArray:function (strData) {
if (!strData)
returnnull;

var arrData = new Uint16Array(strData.length);
for (var i = 0; i < strData.length; i++) {
arrData[i] = strData.charCodeAt(i);
}
return arrData;
},
send二進制介面和send文本沒有區別,區別在於傳入的對象,JS內部自己知道對象是文本還是二進制數據,然後做不同的處理。
var buf = "Hello WebSocket中文,\0 I'm\0 a\0 binary\0 message\0.";
var binary = this._stringConvertToArray(buf);

this._wsiSendBinary.send(binary.buffer);
主動關閉WebSocket
當某個WebSocket的通訊不再使用的時候,我們必須手動關閉這個WebSocket與伺服器的連接,以釋放伺服器和客戶端的資源。close會觸發onclose消息。
onExit: function() {

if (this._wsiSendText)

this._wsiSendText.close();

⑤ WCF是什麼如何學習

Windows Communication Foundation (WCF)是一個面向服務編程的綜合分層架構。該架構的頂層稱為服務模型層(Service Model Layer),使用戶用最少的時間和經歷建立自己的軟體產品和外界通信的模型。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。 開發WCF服務的端點需要涉及下面幾個任務:開發服務契約:指定端點可用的WCF服務的操作。開發綁定:綁定指點端點與外界通信的協議。添加,刪除,更新和配置端點:在配置文件中添加和綁定端點(當然也可以用編碼的形式,但是不推薦。)添加行為:一個行為就是一個組件,能增強服務,端點,和操作的運行時行為。

⑥ 《wcf服務編程》適合初學者嗎,如果不適合請推薦本好的入門書籍。

不適合,這本書全是廢話。
建議直接通過網上的資料學習WCF。

WCF其實很簡單,但是如果您是初學者,請先嘗試使用WebService。
直接使用Visual Studio創建WebService,然後在另一個項目中添加服務引用(在引用處點擊右鍵)。
當您能夠正確的完成WebService傳遞數據或調用方法時,請用同樣的方法嘗試創建WCF服務和調用。
當以上嘗試都能夠正確運行時:

請研究「WCF契約模式」,然後研究WCF配置文件。

⑦ c++如何調用wcf 新手

C++調用WCF
寫的ServiceContract
一共有幾種方式?
C++調用WCF
寫的ServiceContract
一共有幾種方式?我下面的調用方式雖然能訪問但是不理想。
在創建C++工程時候選擇
公共語言運行庫支持(/clr)
可以添加WEB引用。
並且成功創建代理類。
也可以調用WCF提供的OperationContract具體方法。
但是有一個問題,由於以上操作選擇了
公共語言運行庫支持(/clr)
,這樣會不會要求C++客戶端程序強制安裝.net
freamwork的託管運行環境。從而增加客戶端的安裝復雜性。
如果要求安裝.net
freamwork的託管運行環境,那麼有什麼好的方法可以不選擇
公共語言運行庫支持(/clr)
。或者不安裝.net
freamwork的託管運行環境,也可以使用WCF提供的
ServiceContract。
也就是C++調用WCF
寫的ServiceContract
一共有幾種方式?
小弟剛研究WCF不長時間,但是有WEBSERVICE基礎(WEBSERVICE的安全也不會做),多謝各位前輩。
-----------------
大家有以下幾種吧,
1.直接調用,把WCF服務暴露為Web服務,如果C++可以直接調用Web服務,那麼也可以直接調WCF服務。
2.把WCF服務暴露為Rest
服務,C++如果可以調用普通的網頁,通過Http標准操作,Get,Put,post等那麼它也可以直接調用Rest
WCF服務。
3.另外就是把調用WCF服務的客戶端包裝成程序集,然後C++代碼調用程序集里的C#代碼。
前兩種方式應該操作性更強吧。

⑧ C++怎麼調用WCF

C++調用WCF 寫的ServiceContract 一共有幾種方式?C++調用WCF 寫的ServiceContract 一共有幾種方式?我下面的調用方式雖然能訪問但是不理想。在創建C++工程時候選擇 公共語言運行庫支持(/clr) 可以添加WEB引用。 並且成功創建代理類。 也可以調用WCF提供的OperationContract具體方法。 但是有一個問題,由於以上操作選擇了 公共語言運行庫支持(/clr) ,這樣會不會要求C++客戶端程序強制安裝.net freamwork的託管運行環境。從而增加客戶端的安裝復雜性。 如果要求安裝.net freamwork的託管運行環境,那麼有什麼好的方法可以不選擇 公共語言運行庫支持(/clr) 。或者不安裝.net freamwork的託管運行環境,也可以使用WCF提供的 ServiceContract。也就是C++調用WCF 寫的ServiceContract 一共有幾種方式?小弟剛研究WCF不長時間,但是有WEBSERVICE基礎(WEBSERVICE的安全也不會做),多謝各位前輩。-----------------大家有以下幾種吧,1.直接調用,把WCF服務暴露為Web服務,如果C++可以直接調用Web服務,那麼也可以直接調WCF服務。2.把WCF服務暴露為Rest 服務,C++如果可以調用普通的網頁,通過Http標准操作,Get,Put,post等那麼它也可以直接調用Rest WCF服務。3.另外就是把調用WCF服務的客戶端包裝成程序集,然後C++代碼調用程序集里的C#代碼。前兩種方式應該操作性更強吧。

⑨ WCF服務編程一書中寫到:契約操作不能使用引用對象參數,只允許使用基本類型或者數據契約

在過程調用中傳遞了一個無效參數。這可能是由於參數超出范圍,或包含無效數據。另外,有可能在不適當的時間對過程進行了調用。要糾正該錯誤驗證傳遞給過程的參數是有效的。驗證在適當的時間調用函數。溢出試圖賦給變數的賦值太大,這是因為:賦值,計算或者數據類型轉換結果很大以至於不能代表此種類型變數值的范圍。屬性賦值超出了屬性所能接受的最大值。整數類型數字的計算結果大於一個整數。要糾正該錯誤將值賦給一個較大取值范圍的變數類型。確保賦值符合屬性范圍。內存不足分配與該計算機有效內存一樣多的內存。這可能是一個動態分配數組增長得太大,或者是對象實例數目過多。要糾正該錯誤使用Erase語句來重新分配動態數組的儲存空間。使用ReDim語句來重新分配儲存空間。關閉任何已經打開、不必需的應用程序,文件或者源文件。下標越界要訪問的數組中元素數目比期望的少。例如試圖從一個定義為10個元素的數組中訪問到11個元素。.要糾正該錯誤確保你的代碼中包含檢察元素是否越界的邊界。重新定義一個更大的數組大小至需要的維數。該數組為定長的或者臨時被鎖定試圖用ReDim函數來改變一個定長數組的元素數目。動態數組或者Variant變數內的數組可以被暫時的鎖定。要糾正該錯誤如果在過程內部定義數組,用ReDim函數將其從靜態變為動態。如果在模塊水平上說明數組,不要指定數組中元素的數目。被零除創建一個試圖將數字被零除的表達式。被零除得到無窮大(不可用)結果。要糾正該錯誤檢查表達式的輸入或大小寫錯誤。類型不匹配試圖比較不相容數據類型的值。例如,比較一個字元串和一個數值。要糾正該錯誤當進行比較時,要確保數據類型相同。用一個的數據類型來計算另一個的值,然後重新比較。字元串空間溢出試圖創建字元串對象時系統內存被用盡。這可能是因為動態分配數組越來越大或對象實例的數目過大。要糾正該錯誤使用Erase語句來重新分配動態數組的儲存空間。使用ReDim語句來重新分配儲存空間。關閉任何已經打開、不必需的應用程序,文件或者源文件無法執行請求的操作當主機使腳本引擎中斷時無法繼續執行腳本。主機未指定明確的返回錯誤代碼。要糾正該錯誤該錯誤的解決與主機有關。堆棧溢出過程嵌套太深。每次代碼從一個過程跳到另一個過程,本地變數的內容被放到堆棧中。堆棧是一個大小隨著要求執行的腳本動態增長和縮小的內存工作區域。要糾正該錯誤檢查沒有嵌套很深的過程。確保遞歸(重入)過程沒有經常的調用自身。確保遞歸過程被正常終止。未定義Sub或Function試圖調用一個不存在的過程。要糾正該錯誤檢查過程的拼寫確保輸入正確。載入DLL錯誤應用程序引用了一個無法找到的DLL,一個DLL可能引用了另一個無法找到的DLL。要糾正該錯誤確保DLL存在。使用全路徑名引用DLL。獲得被引用的DLL並使其對其他DLL有效。內部錯誤發生內部錯誤。要糾正該錯誤除非這是由Raise方法產生,請與微軟產品服務聯系報告出現錯誤消息的情況。未設置對象變數試圖使用無效對象的對象屬性。如果遺漏了Set語句,將在對象引用產生錯誤。要糾正該錯誤為對象變數指定一個引用。For循環未初始化在腳本中執行跳到ForNext循環中間的結果。由於ForNext循環計數必須被初始化所以產生錯誤。下面演示了一個ForNext循環的正確結構。Forcounter=startToend[Stepstep][statements][ExitFor][statements]Next要糾正該錯誤移去跳轉至ForNext循環的語句。確保ForNext循環包含了所有必須的部分。非法使用Null試圖獲得一個為Null的Variant變數的值。你只能獲得包含有效值的Variant變數的值。Null是一個Variant一個用來指示一個數據項不包含任何有效數據的子類型。要糾正該錯誤確保變數包含有效數據。需要對象提供的對象無效(或無法認為是一個對象)。對屬性和方法的引用需要一個顯式的對象限定符。要糾正該錯誤提供一個對象限定符。檢查對象限定符的拼寫。ActiveX部件無法創建對象由於對象類未在系統注冊表中注冊或者是一個或多個相關的動態鏈接庫無效(DLLs),VB5.5運行時無法初始化對象。另外一種可能情況是,由於未找到或是已經損壞,對象所需的DLL不可用。要糾正該錯誤確保所有相關的DLLs有效。例如,數據存取對象(DAO)所需的DLLs在不同的平台下是不同的。你可能不得不返回到安裝程序查找該對象。InternetExplorer可能試圖創建對象,但是在InternetExplorer中沒有正確的安全許可。重置InternetExplorer安全設置並重試。類不支持自動化試圖操作一個並不支持自動化的對象屬性或方法。可以創建並將指針傳遞給不支持自動化的對象,但是不能獲取它的屬性和方法。要糾正該錯誤查創建對象應用程序的文檔中關於該類自動化使用的限制。注意對象可能已經通過使用CreateObject被創建,但可能已經通過主機對象模型被引入。在自動化操作中未找到文件名或類名使用GetObject函數,但是將一個不可識別的類或文件名作為參數。GetObject函數要求包含要獲取的對象的文件的完整的路徑和名稱,或者是在系統中注冊過的類名稱。要糾正該錯誤檢查名稱的拼寫錯誤,然後重試。確保class參數的名稱與在系統中注冊的相匹配。對象不支持該屬性或方法對該自動化對象指定了一個並不存在的屬性或方法。不是所有的對象都支持所有的屬性和方法。要糾正該錯誤檢查屬性和方法以確保沒有打字錯誤。參見對象的文檔獲取的信息。對象不支持此操作試圖引用該對象不支持的一個方法或屬性。不是所有的對象支持所用的操作。要糾正該錯誤檢查屬性和方法以確保沒有打字錯誤。參見對象的文檔獲取的信息。對象不支持當前的區域設置試圖操作一個不支持當前區域設置的對象。區域設置是和給定語言以及國家/地區相對應的一系列信息。本地影響預定義程序項的語言和本地特定設置。以下兩種情況時本地信息很重要:codelocale影響語言項例如關鍵詞,並且定義本地特定設置例如小數和列表分割符,日期格式和字元排列順序。systemlocale影響本地相關的功能執行。例如,當顯示數字或者將字元串轉換為日期時。使用操作系統提供的控制面板工具來設定系統。要糾正該錯誤檢查對象支持的區域設置。未找到命名參數調用一個過程並指定一個特別的參數,但是過程未被定義為接受以為名稱的參數。除非在過程定義中出現,一個命名參數不能在過程調用中使用。要糾正該錯誤檢查參數名稱是否正確拼寫,然後再試著調用過程。參數不可選調用過程但是參數數量錯誤。傳遞給過程的參數的數量必須與過程定義的參數數量相同。要糾正該錯誤檢查函數符號確保提供了所有必須的參數。錯誤的參數個數或無效的參數屬性值調用過程時如果:錯誤的過程名稱,或者,過程中參數數目錯誤,或者,參數類型錯誤。傳遞給過程的參數數目必須與過程定義中的參數數目相符。要糾正該錯誤檢查以確保傳遞給過程的參數列表與過程定義或聲明中的相符。對象不是一個集合試圖對一個不是Collection類型的對象進行只對Collection對象有效的操作。有些屬性、方法和操作僅可應用於Collection對象。Collection對象是包含一組互相關聯的對象的一種對象。一旦集合中發生了改變,一個對象在Collection對象中的位置也會發生改變;因此,Collection對象中的任何一個對象的位置都可能變化。要糾正該錯誤檢查對象或屬性名稱的拼寫。驗證對象是一個Collection對象。查看用來向集合中添加該對象的Add方法,確保語法正確且任何標識符的拼寫都正確。變數使用了VB不支持的自動化類型試圖使用類型庫或者對象庫中不被支持的數據類型,任何一門編程語言都不能使用類型庫或對象庫中的所有變數。要糾正該錯誤只使用VB識別的變數類型。遠程伺服器不存在或者不能訪問用CreateObject函數來建立一個遠程機器的對象,但是調用失敗,這是因為無法訪問遠程伺服器或者沒有包含特定的類。要糾正該錯誤檢驗遠程伺服器的名字是否正確。檢驗遠程伺服器的DCOM可用。使用dcomcnfg驗證安全許可權是否允許建立對象。無效圖片試圖載入一個無法識別格式的圖像。有效格式包括點陣圖(*.bmp),圖標(*.ico),以及Windows元文件(*.wmf)。要糾正該錯誤確保要載入的圖像文件的格式是有效的。變數未定義在腳本開始處用OptionExplicit語句,後來又使用一個未被說明的變數名稱。當使用OptionExplicit語句時,必須用Dim,Private,Public或者ReDim語句顯式地說明所有的變數。要糾正該錯誤使用OptionExplicit語句時,確保用Dim,Private,Public,OrReDim語句定義了所有的變數。腳本對象不安全試圖使用未被標識為腳本安全的對象。對象創建是否安全由主機決定。總的來說,允許不信任腳本進行有害操作(例如操作硬碟)的對象是不安全的。例如,使用作為客戶端的MicrosoftInternetExplorer運行FileingObject是不安全的,但是可以在帶有WindowsHost的本地機器使用該對象。要糾正該錯誤確保在使用一個安全的對象。與對象開發者聯系看是否為安全版本。閱讀對象文檔發現該對象是否安全。對象不能安全初始化試圖使用未被標識為初始化安全的對象。對象創建是否安全由主機決定。總的來說,允許不信任腳本進行有害操作(例如操作硬碟)的對象是不安全的。例如,使用作為客戶端的MicrosoftInternetExplorer運行FileingObject是不安全的,但是可以在帶有WindowsHost的本地機器使用該對象。要糾正該錯誤確保在使用一個安全的對象。與對象開發者聯系看是否為安全版本。閱讀對象文檔發現該對象是否安全。對象不能安全創建試圖使用一個未被標識為安全創建的對象。對象創建是否安全由主機決定。總的來說,允許不信任腳本進行有害操作(例如操作硬碟)的對象是不安全的。例如,使用作為客戶端的MicrosoftInternetExplorer運行FileingObject是不安全的,但是可以在帶有WindowsHost的本地機器使用該對象。要糾正該錯誤確保在使用一個安全的對象。與對象開發者聯系看是否為安全版本。閱讀對象文檔發現該對象是否安全。無效或不合格的引用試圖對不止一個對象使用With語句。With語句只能被非空對象使用。下面演示了一個With塊的正確結構。WithobjectstatementsEndWith要糾正該錯誤為With語句指定一個對象。類未定義引用未定義(通過New或Set語句)的類。要糾正該錯誤確保在引用類之前已經定義。發生異常腳本調用COM對象,然後產生異常。要糾正該錯誤除非該調用由Raise方法產生,請與產生錯誤的CM對象開發人員聯系。請與微軟產品服務聯系報告出現錯誤消息的情況。正則表達式中的語法錯誤搜索字元串的結構違背了VB正則表達式中的一個或多個語法規則。要糾正該錯誤保證常規的搜索字元串的表達式符合Perlde的表達語法。錯誤的數量詞當構造正則表達式的搜索模式時,沒有正確的說明匹配的字元串。要糾正該錯誤確保搜索模式是正確構造的。在正則表達式中需要']'試圖為正則表達式匹配創建一個字元類,但未包含右括弧。將單獨的字元組合放到方括弧里可以將其裝配到字元類中。例如,/[abc]/匹配字母「a」,「b」,或「c」中任意一個。要糾正該錯誤在正則表達式中添加右括弧。在正則表達式中需要')'試圖創建常規的嵌套表達式,但未包含「)」。在正則表達式中括弧有幾個目的。首先,它將分離的項組成為單個子表達式,所以項目可以通過*,+,?等等來當作一個單元來處理。要糾正該錯誤在常規的嵌套表達式中添加右(閉)括弧「)」。字元集越界試圖使用無效字元創建正則表達式。正則表達式是由字母數字和元字元組成的。要糾正該錯誤僅僅使用有效正則表達式字元來組成正則表達式。求採納為滿意回答。

⑩ WCF編程要用到什麼編程語言要怎麼學WCF編程

用.net語言來編寫的
目前國內,Net最好的就是如鵬網了,基本上都是慕名而去的

熱點內容
phpgd圖片 發布:2025-02-06 17:24:34 瀏覽:204
php代碼整理 發布:2025-02-06 17:24:31 瀏覽:475
java可執行文件 發布:2025-02-06 17:18:59 瀏覽:247
衛士相當於現在什麼配置 發布:2025-02-06 17:05:04 瀏覽:409
項目編譯慢 發布:2025-02-06 16:53:48 瀏覽:382
python處理excel文件 發布:2025-02-06 16:36:09 瀏覽:442
演算法相對定位 發布:2025-02-06 16:32:42 瀏覽:728
java程序的編譯和執行 發布:2025-02-06 16:21:45 瀏覽:420
什麼是淘寶帳號和密碼 發布:2025-02-06 16:21:36 瀏覽:498
解壓前面簽 發布:2025-02-06 16:02:00 瀏覽:326