मैं एक पावरहेल स्क्रिप्ट लिख रहा हूं जो हर 10 मिनट में साबुन webservice को गर्म और जीवंत रखने के लिए पिंग करेगा ताकि प्रदर्शन बढ़े। हमने आईआईएस में आवेदन पूल निष्क्रिय टाइमआउट के साथ कई तकनीकों का प्रयास किया है और बस wsdl के लिए http req बना रहा है। लेकिन ऐसा लगता है कि हमें वास्तविक अनुरोध करना है जो एसक्यूएल सर्वर पर जाता है और 90 मिनट के लिए निष्क्रिय होने से यह आवश्यकताओं के लिए धीमा हो जाएगा।पावरहेल में साबुन कॉम्प्लेक्स का उपभोग करने के लिए एक साबुन सेवा रखने के लिए टाइप करें
मुझे एक स्मार्ट खोज करने में सक्षम होने के लिए एक जटिल खोज वस्तु बनाना है जो servicelayer को कैश और गर्म रखेगा। साबुन अनुरोध इस तरह दिखना चाहिए:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fund="http://www.example.com/cmw/fff/fund" xmlns:tcm="http://www.example.com/cmw/fff/">
<soapenv:Body>
<fund:Get>
<!--Optional:-->
<fund:inputDTO>
<fund:Fund>
<fund:Identity>
<fund:Isin>SE9900558666</fund:Isin>
<fund:FundBaseCurrencyId>SEK</fund:FundBaseCurrencyId>
</fund:Identity>
</fund:Fund>
<fund:InputContext>
<tcm:ExtChannelId>Channelman</tcm:ExtChannelId>
<tcm:ExtId>Rubberduck</tcm:ExtId>
<tcm:ExtPosReference>Rubberduck</tcm:ExtPosReference>
<tcm:ExtUser>Rubberduck</tcm:ExtUser>
<tcm:LanguageId>809</tcm:LanguageId>
</fund:InputContext>
</fund:inputDTO>
</fund:Get>
</soapenv:Body>
</soapenv:Envelope>`
मैं न्यू-WebServiceProxy जो this example by powershellguy में इतने सुंदर ढंग से काम का उपयोग करने का प्रयास करें। मैं my own Objects as this example from technet का निर्माण करता हूं।
powershell कोड मैं अब तक की कोशिश की है:
$fundSrvc = New-WebServiceProxy -uri http://myColdServer:82/WSFund.svc?wsdl -NameSpace "tcm"
# all the type are now defined since we called New-WebServiceProxy they are prefixed
# with ns tcm
[tcm.FundInput] $myFundGoofer = new-object tcm.FundInput
[tcm.Fund] $myFund = new-object tcm.Fund
[tcm.Context] $myInputContext = new-object tcm.Context
[tcm.FundIdentity] $myFundIdentity = New-Object tcm.FundIdentity
# Use these commands to get member of the objects you want to investigat
# $myFundGoofer |Get-Member
# $myFund |Get-Member
# $myInputContext |Get-Member
# $myFundIdentity |Get-Member
$myFundIdentity.Isin="SE9900558666"
$myFundIdentity.FundBaseCurrencyId="SEK"
$myInputContext.ExtChannelId="ChannelMan"
$myInputContext.ExtId="RubberDuck"
$myInputContext.ExtPosReference="RubberDuck"
$myInputContext.ExtUser="RubberDuck"
$myInputContext.LanguageId="809"
$myFund.Identity=$myFundIdentity
$myFundGoofer.Fund = $myFund
$myFundGoofer.InputContext = $myInputContext
#Tada
$fundSrvc.Get($myFundGoofer)
त्रुटि संदेश मेरे लिए कोई मतलब नहीं है। इसकी ध्वनियों की तरह: Cannot convert the "tcm.FundInput" value of type "tcm.FundInput" to type "tcm.FundInput"
Cannot convert argument "0", with value: "tcm.FundInput", for "Get" to type "tcm.FundInput": "Cannot convert the "tcm.FundInput" value of type "tcm.FundInput" to type "tcm.FundInput"."
At C:\scripts\Service-TestTCM6.ps1:31 char:14
+ $fundSrvc.Get <<<< ($myFundGoofer)
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
आप इस की कोशिश की? http://www.sqlmusings.com/2012/02/04/resolving-ssrs-and-powershell-new-webserviceproxy-namespace-issue/ –
नहीं, लेकिन अब मुझे लगता है कि यह समस्या आपके लिंक में वर्णित है यह एक बार चला सकता है और फिर मुझे नामस्थान बदलना होगा या पावरहेल को पुनरारंभ करना होगा। यह प्रत्येक पुनरारंभ करने के बाद काम करता है। धन्यवाद –
उद्धरण में नामस्थान डालें मत। '$ fundSrvc = new-webServiceProxy -uri http: // myColdServer: 82/WSFund.svc? wsdl -NameSpace tcm' –