locked
AccessException: [ISS.0084.9004] Access Denied RRS feed

  • Question

  • User1558079765 posted

    Hi everybody,

    I hope that I found the solution for my issue, lets begin:

    I have a web application using VS.NET 2003 (Asp.net/VB.Net) that Post an xml file to backend system.

    The Issue:
    The Application post the file and get the response from the backend system but after while (8-10) hours or if there was no transactions between my application and the backend system for around 1 hour it gives me this Error when I tried to post the file:

    -----------------------------------------------
    <BODY bgcolor=#dddddd>
    <TABLE bgcolor=#dddddd border=1>
    <TR>
    <TD valign=top><B>$errorDump</B></TD>
    <TD>com.wm.app.b2b.server.AccessException: [ISS.0084.9004] Access Denied
    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:298)
    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:119)
    at com.wm.app.b2b.server.HTTPInvokeHandler._process(HTTPInvokeHandler.java:138)
    at com.wm.app.b2b.server.InvokeHandler.process(InvokeHandler.java:113)
    at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:204)
    at wm.server.net.HandshakeHandler.run(IaikHTTPSListener.java:774)
    at com.wm.util.pool.PooledThread.run(PooledThread.java:105)
    at java.lang.Thread.run(Thread.java:479)
    </TD>
    </TR>
    <TR>
    <TD valign=top><B>$errorInfo</B></TD>
    <TD><TABLE bgcolor=#dddddd border=1>
    <TR>
    <TD valign=top><B>$errorDump</B></TD>
    <TD>com.wm.app.b2b.server.AccessException: [ISS.0084.9004] Access Denied
    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:298)
    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:119)
    at com.wm.app.b2b.server.HTTPInvokeHandler._process(HTTPInvokeHandler.java:138)
    at com.wm.app.b2b.server.InvokeHandler.process(InvokeHandler.java:113)
    at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:204)
    at wm.server.net.HandshakeHandler.run(IaikHTTPSListener.java:774)
    at com.wm.util.pool.PooledThread.run(PooledThread.java:105)
    at java.lang.Thread.run(Thread.java:479)
    </TD>
    </TR>
    <TR>
    <TD valign=top><B>$error</B></TD>
    <TD>[ISS.0084.9004] Access Denied</TD>
    </TR>
    <TR>
    <TD valign=top><B>$localizedError</B></TD>
    <TD>[ISS.0084.9004] Access Denied</TD>
    </TR>
    <TR>
    <TD valign=top><B>$errorType</B></TD>
    <TD>com.wm.app.b2b.server.AccessException</TD>
    </TR>
    <TR>
    <TD valign=top><B>$service</B></TD>
    <TD>HTTPConnector.Mailbox:get</TD>
    </TR>
    <TR>
    <TD valign=top><B>$user</B></TD>
    <TD>Default</TD>
    </TR>
    <TR>
    <TD valign=top><B>$time</B></TD>
    <TD>2005-11-15 05:55:54 CST</TD>
    </TR>
    <TR>
    <TD valign=top><B>$details</B></TD>
    <TD></TD>
    </TR>
    <TR>
    <TD valign=top><B>$errorMsgId</B></TD>
    <TD>ISS.0084.9004</TD>
    </TR>
    </TABLE>
    </TD>
    </TR>
    <TR>
    <TD valign=top><B>$error</B></TD>
    <TD>[ISS.0084.9004] Access Denied</TD>
    </TR>
    <TR>
    <TD valign=top><B>$errorType</B></TD>
    <TD>com.wm.app.b2b.server.AccessException</TD>
    </TR>
    </TABLE>
    </BODY>
    ----------------------------------------------------

    When I restart the machine it works fine, I checked with the network staff for the Port session time out but they remove it on both servers and they remove the firewall, also they said that when the error occured there is no request go out from my server to the backend server.

    here is a part of my code:
    --------------------------------------

            Dim xmlHttp As New MSXML2.XMLHTTP
            Dim doc As New MSXML2.DOMDocument
            Dim strQuery As String
            Dim strURL As String
            Dim strPostBody As String

            ' Set the post body - this is the query/request.

            Dim funcValueType As String
            Dim funcValue1 As String
            Dim funcValue2 As String
            Dim funcValue3 As String
            Dim funcValue4 As String


            Select Case strValueType
                Case "LLAccountNumber"
                    funcValueType = strValueType
                    funcValue1 = ""
                    funcValue2 = strValue
                    funcValue3 = ""

                Case "LLPhoneNumber"
                    funcValueType = strValueType
                    funcValue1 = strValue
                    funcValue2 = ""
                    funcValue3 = ""

                Case "LLCustomerID"
                    funcValueType = strValueType
                    funcValue1 = ""
                    funcValue2 = ""
                    funcValue3 = strValue

            End Select

            ' Set the post body - this is the query/request.
            strPostBody = "$xmldata=<?xml version='1.0' encoding='UTF-8'?><CustomerRequest> " & _
                          "<PhoneNumber>" & funcValue1 & "</PhoneNumber> " & _
                          "<AccountNumber>" & funcValue2 & "</AccountNumber> " & _
                          "<CustomerID>" & funcValue3 & "</CustomerID> " & _
                          "<SearchBy>" & funcValueType & "</SearchBy> " & _
                          "</CustomerRequest> "

     

            Dim abc As New MSXML2.XMLHTTP
            'Send the Request to the backend system

            abc.open("POST", "http://xxx.xx.xxx.xx:55083/invoke/RY002_Customer.services/handleCustomerRequestWrapper", False, "UserName", "Password")

            abc.send(strPostBody)

            Dim TEMP As String
            'Get the results from the backend system
            TEMP = abc.responseText()

            Session("IVR") = TEMP

            xmlHttp.abort()
            abc.abort()

      -------------------------------------------------

    The application runs on Windows 2003 Enterprice Edition.

    Any Suggestion it will be appreciated.

    Regards,

    Hani

     

    Saturday, May 19, 2007 9:50 AM

Answers

  • User-900677162 posted

    HI, HaniB: 

    Basically it's a problem with using .net and a server that's using
    webmethods. .net doesn't negotiate the authentication the way web
    methods expects it. The below code
    is a partial class which only needs to be included in your project and
    you can regenerate your webservice proxy all you want because the
    generated code comes out as a partial class. The only requirements are
    that you have the Namespace set correctly, along with the class name.




    I
    Namespace MyWebServiceNameSpace
        Partial Public Class MyWebServiceClass
            Inherits System.Web.Services.Protocols.SoapHttpClientProtocol

            Protected Overrides Function GetWebRequest(ByVal myUri As Uri)
    As System.Net.WebRequest
                Dim request As System.Net.HttpWebRequest
                request = CType(MyBase.GetWebRequest(myUri),
    System.Net.HttpWebRequest)

                If Me.PreAuthenticate Then
                    Dim creds As System.Net.NetworkCredential =
    Me.Credentials.GetCredential(myUri, "Basic")
                    If Not creds Is Nothing Then
                        Dim credentialBuffer() As Byte = New
    System.Text.UTF8Encoding().GetBytes( _
                            creds.UserName & ":" & creds.Password)
                        request.Headers("Authorization") = "Basic " &
    Convert.ToBase64String(credentialBuffer)
                    Else
                        Throw New ApplicationException("No network
    credentials")
                    End If
                End If
                Return request
            End Function
        End Class
    End Namespace

    I hope the above information will be helpful. If you have any issues or concerns, please let me know. It's my pleasure to be of assistance

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Sunday, May 20, 2007 11:47 PM

All replies

  • User-900677162 posted

    HI, HaniB: 

    Basically it's a problem with using .net and a server that's using
    webmethods. .net doesn't negotiate the authentication the way web
    methods expects it. The below code
    is a partial class which only needs to be included in your project and
    you can regenerate your webservice proxy all you want because the
    generated code comes out as a partial class. The only requirements are
    that you have the Namespace set correctly, along with the class name.




    I
    Namespace MyWebServiceNameSpace
        Partial Public Class MyWebServiceClass
            Inherits System.Web.Services.Protocols.SoapHttpClientProtocol

            Protected Overrides Function GetWebRequest(ByVal myUri As Uri)
    As System.Net.WebRequest
                Dim request As System.Net.HttpWebRequest
                request = CType(MyBase.GetWebRequest(myUri),
    System.Net.HttpWebRequest)

                If Me.PreAuthenticate Then
                    Dim creds As System.Net.NetworkCredential =
    Me.Credentials.GetCredential(myUri, "Basic")
                    If Not creds Is Nothing Then
                        Dim credentialBuffer() As Byte = New
    System.Text.UTF8Encoding().GetBytes( _
                            creds.UserName & ":" & creds.Password)
                        request.Headers("Authorization") = "Basic " &
    Convert.ToBase64String(credentialBuffer)
                    Else
                        Throw New ApplicationException("No network
    credentials")
                    End If
                End If
                Return request
            End Function
        End Class
    End Namespace

    I hope the above information will be helpful. If you have any issues or concerns, please let me know. It's my pleasure to be of assistance

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Sunday, May 20, 2007 11:47 PM
  • User1558079765 posted

    Thanks for you reply,

    I'll update my code and let you know.

    Regards,

    Hain

    Monday, May 21, 2007 6:48 AM