Solved

Server object error 'ASP 0177:80040154'

Posted on 1998-12-08
2
370 Views
Last Modified: 2008-03-03
What is "
Server object error 'ASP 0177:80040154'

Server.CreateObject Failed

/default.asp, line 181

The call to Server.CreateObject failed. The requested object instance cannot be created.
"

Thanks
0
Comment
Question by:ruisun
  • 2
2 Comments
 
LVL 2

Accepted Solution

by:
aliciaam earned 20 total points
ID: 1092155
To invoke Microsoft Transaction Server (MTS) components from Active Server
Pages, (ASP) perform the following three steps, which are described in more
detail in the MORE INFORMATION section of this article:
 
1. Configure the registry to allow ASP to create out-of-process components.
   For security reasons, ASP by default cannot create out-of-process
   components. Thus, all attempts to create Transaction Server objects with
   Server.CreateObject will fail, unless the MTS object is configured to
   run "In the creator's process" using MTS Explorer. The ASP page will
   return the following error message to the HTML client:
 
      Server object error'ASP 0177:80040154'
      Server.CreateObject Failed
 1. If the MTS object is configured to run in an Transaction Server process,
   the registry must be configured to allow ASP to create out-of-process
   components. Before changing this registry setting, make sure you have a
   thorough understanding of how to secure out-of-process components. For
   example, you should set a specific user identity for the component;
   otherwise, the MTS component will run under the identity of the first
   user to access it.
 
   To allow out-of-process components, use Regedit to select the following
   key:
 
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP
      \Parameters
 
   The Parameters key has several subvalues that control ASP. Make sure it
   has a subvalue named AllowOutOfProcCmpnts, and that this subvalue is set
   to 1.
 


0
 
LVL 2

Expert Comment

by:aliciaam
ID: 1092156
SUMMARY
=======
 
To invoke Microsoft Transaction Server (MTS) components from Active Server
Pages, (ASP) perform the following three steps, which are described in more
detail in the MORE INFORMATION section of this article:
 
1. Configure the registry to allow ASP to create out-of-process components.
   For security reasons, ASP by default cannot create out-of-process
   components. Thus, all attempts to create Transaction Server objects with
   Server.CreateObject will fail, unless the MTS object is configured to
   run "In the creator's process" using MTS Explorer. The ASP page will
   return the following error message to the HTML client:
 
      Server object error'ASP 0177:80040154'
      Server.CreateObject Failed
 
2. VBScript 2.0 requires that non-Variant data types be passed by value.
   Therefore, make sure that all non-Variant data types passed by your MTS
   component are passed by value, not by reference. If you break this rule,
   the ASP script will return the following error:
 
      Microsoft VBScript runtime error '800a000d'
      Type mismatch: 'Accountobj.Post'
 
3. Write an ASP page that uses Server.CreateObject to create your MTS
   component.
 
MORE INFORMATION
================
 
1. If the MTS object is configured to run in an Transaction Server process,
   the registry must be configured to allow ASP to create out-of-process
   components. Before changing this registry setting, make sure you have a
   thorough understanding of how to secure out-of-process components. For
   example, you should set a specific user identity for the component;
   otherwise, the MTS component will run under the identity of the first
   user to access it.
 
   To allow out-of-process components, use Regedit to select the following
   key:
 
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP
      \Parameters
 
   The Parameters key has several subvalues that control ASP. Make sure it
   has a subvalue named AllowOutOfProcCmpnts, and that this subvalue is set
   to 1.
 
2. The MTS component may pass only variants by reference; all other data
   types must be passed by value. The Bank sample supplied with MTS breaks
   this rule with its Account.Post method, which passes two longs and a
   string by reference.
 
   The following steps are instructions for modifying the Bank sample,
   adding a PostVariant method that has Variant arguments.
 
   A. Make sure that the Bank package is installed in MTS, and that the
      Bank Client provided with MTS is able to credit and debit money.
 
   B. In Visual Basic, open the Account.VB project in the MTX\Samples
      directory.
 
   C. Add the code below to the Account class. The new PostVariant method
      simply wraps the existing Post method.
 
         Public Function PostVariant(varAccountNo As Variant, _
            varAmount As Variant, ByRef varResult As Variant) As Variant
            Dim lngAccountNo As Long
            Dim lngAmount As Long
            Dim strResult As String
            lngAccountNo = varAccountNo
            lngAmount = varAmount
            strResult = varResult
            PostVariant = Post(lngAccountNo, lngAmount, strResult)
            varAccountNo = lngAccountNo
            varAmount = lngAmount
            varResult = strResult
         End Function
 
   D. Compile the Bank project. Make sure that the new Vbacct.dll file
      replaces the copy in the MTX\Packages directory.
 
   E. In MTS Explorer, select My Computer. On the Tools menu, click Refresh
      All Components. MTS Explorer should now show that the Bank.Account
      component has a PostVariant method.
 
3. Construct an ASP page that calls the MTS component. Perform the
   following steps to create an ASP page that manages a bank account by
   calling the Account.PostVariant method created in step 2 above.
 
   A. In Visual Interdev, use the Web Project Wizard to construct a new Web
      project called MTSWeb. In step two of the wizard, choose to create a
      new web.
 
   B. In Visual Interdev, create a new Active Server Page file named
      MTSBank in the MTSWeb project.
 
   C. The new ASP file has a line reading "Insert HTML here." At that
      point, insert the following HTML:
 
         <%
         Dim Accountobj, Msg
         If (Not IsNumeric(Request("Amount")) _
            or IsEmpty(Request("Amount"))) Then
            Msg = "Please enter the amount of the transaction."
         Else
            set Accountobj = server.createobject("Bank.Account")
            Accountobj.PostVariant Request("AccountID"), _
          Request("Type") * Request("Amount"), Msg
         End If%>
         <%=Msg%>
         <BR>
         <FORM METHOD="POST" ACTION="MTSBank.asp">
         Transaction Type:
         <INPUT TYPE="RADIO" NAME="Type" VALUE="1" CHECKED>Credit
         <INPUT TYPE="RADIO" NAME="Type" VALUE="-1" >Debit
         <BR>
         Account ID: <INPUT TYPE="TEXT" NAME="AccountID" SIZE=30 VALUE="1">
         <BR>
         Amount    : <INPUT TYPE="TEXT" NAME="Amount" SIZE=30>
         <BR>
         <INPUT TYPE="SUBMIT" VALUE="Submit">
         </FORM>
 
   D. Save the new ASP file. If you now use a Web browser to access
      http://YourWebServer/MTSWeb/MTSBank.asp, you will be able to credit
      or debit money using ASP and the MTS Bank.Account component.
 
REFERENCES
==========
 
For more information, visit the Web sites at:
 
 - http://support.microsoft.com/support/default.asp
 
 - http://www.microsoft.com/transaction

0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now