I don't want to send anything TO Biztalk, I want to receive something FROM
Biztalk, so I don't need to use the Biztalk receive dll, because as far as I
understand it right now that dll is for receiving documents INTO biztalk. So
biztalk sends something using HTTP transport to an aspx page, and that aspx
page should then take the actual XML document out of the request, so I can
use the values to call another application.
I tried a sample ASP file in the Biztalk SDK, and that works. The problem,
however, is that this code does not work in .NET. The app I am calling is
MS-CRM, which only has an object model available in .NET, so I need
something that will work in .NET.
Code in a regular ASP page, that sits in my wwwroot, and gets called in my
port in Biztalk:
<%
' ASP Receive page which accepts XML and saves it to a file
On Error Resume Next
Dim EntityBody, PostedDocument, Stream, fso, f
' Get the post entity body
EntityBody = Request.BinaryRead (Request.TotalBytes )
' Convert to text
Set Stream = Server.CreateObject("AdoDB.Stream")
Stream.Type = 1 'adTypeBinary
stream.Open
Stream.Write EntityBody
Stream.Position = 0
Stream.Type = 2 'adTypeText
Stream.Charset = "us-ascii"
PostedDocument = Stream.ReadText
Stream.Close
Set Stream = Nothing
set fso = Server.CreateObject("Scripting.FileSystemObject")
set f = fso.CreateTextFile("C:\temp\MyTest.xml", True)
f.WriteLine (PostedDocument)
f.Close
Set f = Nothing
Set fso = Nothing
%>
When I create a new aspx VB.NET project and copy this code into it, I can
build the project without any errors, but when I run the biztalk test, it
gives me the error from my earlier post. When I type the aspx page address
in a webbrowser, it gives me the following error:
Server Error in '/BTStoCRM' Application.
----------------------------------------------------------------------------
----
Parser Error
Description: An error occurred during the parsing of a resource required to
service this request. Please review the following specific parse error
details and modify your source file appropriately.
Parser Error Message: Could not load type 'BTStoCRM.Global'.
Source Error:
Line 1: <%@ Application Codebehind="Global.asax.vb"
Inherits="BTStoCRM.Global" %>
Source File: c:\inetpub\wwwroot\BTStoCRM\global.asax Line: 1
----------------------------------------------------------------------------
----
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET
Version:1.1.4322.573
Prashant Kondle said:
can u send me the code where u actually post to the BizTalk HTTP receive
DLL..from your application..
the problem is with biztalk parsing..and not with http..u can try to change
the channel settings to pass-through.so no validation occurs..
u can also validate your XML in the editor..or use a sample XML from the
biztalk tutorial for testing..
-PK
Daniel Rimmelzwaan said:
Thanks for the sample code. I copied it into my aspx page, but it doesn't
work for me. My guess is that I need to do some header validation in the
aspx page too, I just don't know what, because I can find no documentation
about this. Biztalk puts my request in the retry Queue, saying there's no
processing server. I get the following error in the event log.
An error occurred in BizTalk Server.
Details:
------------------------------
[0x80004005] An error occurred during transmission:
Request information:
Proxy:
Proxy port:80
URL:
http://myserver/mypage.aspx
Content-Type:text/plain; charset="utf-8"
User name:administrator
Client certificate:
Request body:559 Bytes
Timeout duration (seconds): 600
Error code:80004005
====== ERROR =====
The HTTP server returned an unexpected response: 500 Internal Server Error
The following response was received:
<html>
<head>
<title>Parser Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size:
.7em;color:black;}
p
{font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b
{font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 {
font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 {
font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9emDans Test
[0x0159] The server encountered a transport error while processing the
messaging port "mytest", which uses a transport component with a ProgID of
"BizTalk.SendHTTPX.1".
[0x012b] A transmission attempt failed.
Prashant Kondle said:
This is the piece of code i use in my ASPX page load function--
private void Page_Load(object sender, System.EventArgs e)
{
// Create a Stream object to capture entire InputStream from browser.
Stream str = Request.InputStream;
// Find number of bytes in stream.
int strLen = (int)str.Length;
// Create a byte array to hold stream.
byte[] bArr = new byte[strLen];
// Read stream into byte array.
str.Read(bArr,0,strLen);
// Convert byte array to a text string.
String strmContents="";
for(int i = 0; i < strLen; i++)
{
strmContents = strmContents + (Char)bArr
;
}
// write string into a file using filestream
string Filepath = "c:\\output.xml";
FileStream fs = new
FileStream(Filepath,FileMode.CreateNew,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(strmContents);
sw.Flush();
sw.Close();
}
hope it helps
-PK
I want to send a biztalk document to an aspx page, and I need to see some
sample code, because I just can't make it work. I have a port with
transport
type HTTP, pointing to my aspx page, something like
http://myserver/mypage.aspx. From there it gets blurry, because I just
can't
figure out how to do the rest.
Does anybody have a sample page for me that I can take a look at?
Just
for