asp.net membership - WCF Service creates wcf Client proxy, starts transaction, calls proxy method but fails on Message Security -


i calling wcf service wcf proxy(client) withing wcf service follows:

client -> service1 -> proxy.method -> service2

i use aspnet compatability everywhre asp.net membership configured , working everywhere. if call service2 proxy using transactionsope message security error on service2 unable verify message.

looking @ wcf service trace (below) looks problem seems sqlprovider in service2. can think somehow transaction might deadlocked calls other services before transaction have completed , don't use transactions @ all.

if don't wrap service call in transactionscope works fine! got idea please?

brian

131075 3 0 2 brianfurlong-hp http://msdn.microsoft.com/en-ie/library/system.servicemodel.diagnostics.throwingexception.aspx throwing exception. /lm/w3svc/1/root/nad.checkoutservices.host-20-129243786426619315 system.servicemodel.security.messagesecurityexception, system.servicemodel, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089 message security verification failed. @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessage(message& message, timespan timeout) @ system.servicemodel.security.securityprotocol.verifyincomingmessage(message& message, timespan timeout, securityprotocolcorrelationstate[] correlationstates) @ system.servicemodel.channels.securitychannellistener1.serversecuritychannel1.verifyincomingmessage(message& message, timespan timeout, securityprotocolcorrelationstate[] correlationstate) @ system.servicemodel.channels.securitychannellistener1.securityreplychannel.processreceivedrequest(requestcontext requestcontext, timespan timeout) @ system.servicemodel.channels.securitychannellistener1.receiverequestandverifysecurityasyncresult.processinneritem(requestcontext inneritem, timespan timeout) @ system.servicemodel.channels.securitychannellistener1.receiveitemandverifysecurityasyncresult2.oninnerreceivedone() @ system.servicemodel.channels.securitychannellistener1.receiveitemandverifysecurityasyncresult2.startinnerreceive() @ system.servicemodel.channels.securitychannellistener1.receiveitemandverifysecurityasyncresult2.start() @ system.servicemodel.channels.securitychannellistener1.securityreplychannel.begintryreceiverequest(timespan timeout, asynccallback callback, object state) @ system.servicemodel.dispatcher.replychannelbinder.begintryreceive(timespan timeout, asynccallback callback, object state) @ system.servicemodel.dispatcher.errorhandlingreceiver.begintryreceive(timespan timeout, asynccallback callback, object state) @ system.servicemodel.dispatcher.channelhandler.begintryreceive() @ system.servicemodel.dispatcher.channelhandler.ensurepump() @ system.servicemodel.dispatcher.channelhandler.openandensurepump() @ system.servicemodel.dispatcher.channelhandler.openandensurepump(object state) @ system.servicemodel.channels.iothreadscheduler.criticalhelper.workitem.invoke2() @ system.servicemodel.channels.iothreadscheduler.criticalhelper.workitem.onsecuritycontextcallback(object o) @ system.security.securitycontext.run(securitycontext securitycontext, contextcallback callback, object state) @ system.servicemodel.channels.iothreadscheduler.criticalhelper.workitem.invoke() @ system.servicemodel.channels.iothreadscheduler.criticalhelper.processcallbacks() @ system.servicemodel.channels.iothreadscheduler.criticalhelper.completioncallback(object state) @ system.servicemodel.channels.iothreadscheduler.criticalhelper.scheduledoverlapped.iocallback(uint32 errorcode, uint32 numbytes, nativeoverlapped* nativeoverlapped) @ system.servicemodel.diagnostics.utility.iocompletionthunk.unhandledexceptionframe(uint32 error, uint32 bytesread, nativeoverlapped* nativeoverlapped) @ system.threading._iocompletioncallback.performiocompletioncallback(uint32 errorcode, uint32 numbytes, nativeoverlapped* poverlap) </stacktrace> **<exceptionstring>system.servicemodel.security.messagesecurityexception: message security verification failed. ---&gt; system.data.sqlclient.sqlexception: timeout expired. timeout period elapsed prior completion of operation or server not responding.** @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.consumemetadata() @ system.data.sqlclient.sqldatareader.get_metadata() @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior) @ system.web.security.sqlmembershipprovider.getpasswordwithformat(string username, boolean updatelastloginactivitydate, int32&amp; status, string&amp; password, int32&amp; passwordformat, string&amp; passwordsalt, int32&amp; failedpasswordattemptcount, int32&amp; failedpasswordanswerattemptcount, boolean&amp; isapproved, datetime&amp; lastlogindate, datetime&amp; lastactivitydate) @ system.web.security.sqlmembershipprovider.checkpassword(string username, string password, boolean updatelastloginactivitydate, boolean failifnotapproved, string&amp; salt, int32&amp; passwordformat) @ system.web.security.sqlmembershipprovider.checkpassword(string username, string password, boolean updatelastloginactivitydate, boolean failifnotapproved) @ system.web.security.sqlmembershipprovider.validateuser(string username, string password) @ system.identitymodel.selectors.usernamepasswordvalidator.membershipprovidervalidator.validate(string username, string password) @ system.identitymodel.selectors.customusernamesecuritytokenauthenticator.validateusernamepasswordcore(string username, string password) @ system.identitymodel.selectors.usernamesecuritytokenauthenticator.validatetokencore(securitytoken token) @ system.identitymodel.selectors.securitytokenauthenticator.validatetoken(securitytoken token) @ system.servicemodel.security.receivesecurityheader.readtoken(xmlreader reader, securitytokenresolver tokenresolver, ilist1 allowedtokenauthenticators, securitytokenauthenticator& usedtokenauthenticator) @ system.servicemodel.security.receivesecurityheader.readtoken(xmldictionaryreader reader, int32 position, byte[] decryptedbuffer, securitytoken encryptiontoken, string idinencryptedform, timespan timeout) @ system.servicemodel.security.receivesecurityheader.executefullpass(xmldictionaryreader reader) @ system.servicemodel.security.strictmodesecurityheaderelementinferenceengine.executeprocessingpasses(receivesecurityheader securityheader, xmldictionaryreader reader) @ system.servicemodel.security.receivesecurityheader.process(timespan timeout, channelbinding channelbinding, extendedprotectionpolicy extendedprotectionpolicy) @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessagecore(message& message, timespan timeout) @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessage(message& message, timespan timeout) --- end of inner exception stack trace --- system.data.sqlclient.sqlexception, system.data, version=2.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089 timeout expired. timeout period elapsed prior completion of operation or server not responding. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.consumemetadata() @ system.data.sqlclient.sqldatareader.get_metadata() @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior) @ system.web.security.sqlmembershipprovider.getpasswordwithformat(string username, boolean updatelastloginactivitydate, int32& status, string& password, int32& passwordformat, string& passwordsalt, int32& failedpasswordattemptcount, int32& failedpasswordanswerattemptcount, boolean& isapproved, datetime& lastlogindate, datetime& lastactivitydate) @ system.web.security.sqlmembershipprovider.checkpassword(string username, string password, boolean updatelastloginactivitydate, boolean failifnotapproved, string& salt, int32& passwordformat) @ system.web.security.sqlmembershipprovider.checkpassword(string username, string password, boolean updatelastloginactivitydate, boolean failifnotapproved) @ system.web.security.sqlmembershipprovider.validateuser(string username, string password) @ system.identitymodel.selectors.usernamepasswordvalidator.membershipprovidervalidator.validate(string username, string password) @ system.identitymodel.selectors.customusernamesecuritytokenauthenticator.validateusernamepasswordcore(string username, string password) @ system.identitymodel.selectors.usernamesecuritytokenauthenticator.validatetokencore(securitytoken token) @ system.identitymodel.selectors.securitytokenauthenticator.validatetoken(securitytoken token) @ system.servicemodel.security.receivesecurityheader.readtoken(xmlreader reader, securitytokenresolver tokenresolver, ilist1 allowedtokenauthenticators, securitytokenauthenticator&amp; usedtokenauthenticator) @ system.servicemodel.security.receivesecurityheader.readtoken(xmldictionaryreader reader, int32 position, byte[] decryptedbuffer, securitytoken encryptiontoken, string idinencryptedform, timespan timeout) @ system.servicemodel.security.receivesecurityheader.executefullpass(xmldictionaryreader reader) @ system.servicemodel.security.strictmodesecurityheaderelementinferenceengine.executeprocessingpasses(receivesecurityheader securityheader, xmldictionaryreader reader) @ system.servicemodel.security.receivesecurityheader.process(timespan timeout, channelbinding channelbinding, extendedprotectionpolicy extendedprotectionpolicy) @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessagecore(message&amp; message, timespan timeout) @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessage(message&amp; message, timespan timeout) </stacktrace> <exceptionstring>system.data.sqlclient.sqlexception: timeout expired. timeout period elapsed prior completion of operation or server not responding. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.consumemetadata() @ system.data.sqlclient.sqldatareader.get_metadata() @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior, string method) @ system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior) @ system.web.security.sqlmembershipprovider.getpasswordwithformat(string username, boolean updatelastloginactivitydate, int32&amp; status, string&amp; password, int32&amp; passwordformat, string&amp; passwordsalt, int32&amp; failedpasswordattemptcount, int32&amp; failedpasswordanswerattemptcount, boolean&amp; isapproved, datetime&amp; lastlogindate, datetime&amp; lastactivitydate) @ system.web.security.sqlmembershipprovider.checkpassword(string username, string password, boolean updatelastloginactivitydate, boolean failifnotapproved, string&amp; salt, int32&amp; passwordformat) @ system.web.security.sqlmembershipprovider.checkpassword(string username, string password, boolean updatelastloginactivitydate, boolean failifnotapproved) @ system.web.security.sqlmembershipprovider.validateuser(string username, string password) @ system.identitymodel.selectors.usernamepasswordvalidator.membershipprovidervalidator.validate(string username, string password) @ system.identitymodel.selectors.customusernamesecuritytokenauthenticator.validateusernamepasswordcore(string username, string password) @ system.identitymodel.selectors.usernamesecuritytokenauthenticator.validatetokencore(securitytoken token) @ system.identitymodel.selectors.securitytokenauthenticator.validatetoken(securitytoken token) @ system.servicemodel.security.receivesecurityheader.readtoken(xmlreader reader, securitytokenresolver tokenresolver, ilist1 allowedtokenauthenticators, securitytokenauthenticator& usedtokenauthenticator) @ system.servicemodel.security.receivesecurityheader.readtoken(xmldictionaryreader reader, int32 position, byte[] decryptedbuffer, securitytoken encryptiontoken, string idinencryptedform, timespan timeout) @ system.servicemodel.security.receivesecurityheader.executefullpass(xmldictionaryreader reader) @ system.servicemodel.security.strictmodesecurityheaderelementinferenceengine.executeprocessingpasses(receivesecurityheader securityheader, xmldictionaryreader reader) @ system.servicemodel.security.receivesecurityheader.process(timespan timeout, channelbinding channelbinding, extendedprotectionpolicy extendedprotectionpolicy) @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessagecore(message& message, timespan timeout) @ system.servicemodel.security.transportsecurityprotocol.verifyincomingmessage(message& message, timespan timeout)

this error looks using calling service on http wants use https.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -