Wednesday, November 18, 2009

Dublin has been renamed Windows AppFabric

Dublin and Velocity have been renamed to Windows AppFabric and the Beta 1 version is available at http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx. The link also includes documentation, samples and virtual labs. I would have preferred the name Application Fabric, but for some reason that suggestion was not followed.

Here is a summary of Windows AppFabric (from Brian Loesgen’s blog http://www.brianloesgen.com/blog/2009/11/17/goodbye-dublin-hello-windows-appfabric.html ):

Windows Server AppFabric is a new set of capabilities, bringing together the functionality of Dublin, as well as Velocity (a high-performance, distributed, highly-scalable in-memory cache). In a related move, the Service Bus and Access Control Services that were formerly part of the .NET Services brand have also been rebranded and we now have we now have “Windows Azure platform AppFabric Service Bus” and “Windows Azure platform AppFabric Access Control services”

Thursday, November 12, 2009

Active Directory Error - Why Developer's shouldn't setup the AD

I am doing a POC for a client and in doing so I had to setup two servers on a hosted environment. First, let me say that I am not a AD person and should probably never be allowed to touch the AD settings, but since this is a POC I am playing the role of Architect, Developer, and Infrastructure Support.


I started by using the Server Roles to setup the AD on the first server. The server is a Windows Server 2008 box (not R2). I went through the wizard, everything worked and on the reboot I was able to login to the machine (whew).


After adding the required BizTalk groups and users, I went to add the second computer to the domain. I kept getting the error below. I tried to add the computer through the AD Users and Computers screen, and it still did not work. The fix was very easy, but it took me some time - probably because I am developer and did not understand the network lingo. So here is the error and the fix:


Error:


The following error occurred when DNS was queried for the service location (SRV) resource record used to locate a domain controller for domain :

The error was: "DNS name does not exist."

(error code 0x0000232B RCODE_NAME_ERROR)

The query was for the SRV record for _ldap._tcp.....

Common causes of this error include the following:

- The DNS SRV records required to locate a domain controller for the domain are not registered in DNS. These records are registered with a DNS server automatically when a domain controller is added to a domain. They are updated by the domain controller at set intervals. This computer is configured to use DNS servers with following IP addresses:


- One or more of the following zones do not include delegation to its child zone:


FIX:


1) On the server you are trying to add to the domain, Open the Network and Sharing Center.

2) Select Manager you connections.

3) On the correct connection (more than likely the LAN connection) right click and select properties.

4) Select the TCP/IPv4 option and select properties.

5) Select the Advanced button and then select the DNS tab.

6) Add the IP address of the DNS server and move it to the top of the list.

7) Select Ok, Ok, Ok.

8) Go to Computer Settings and change the domain.

9) Restart the computer and everything should now work :).


Monday, November 02, 2009

UDDI ArgumentNullException: Value cannot be null

Below is a link that I have used a couple of time now:

UDDI ArgumentNullException: Value cannot be null

I too forget to add the transport type category in UDDI. I remember the instances, but forget about categories. Would be nice to have an UDDI-ESB configuration tool. I'll create one in my spare time...

Wednesday, September 16, 2009

Itinerary Not Deployed

I've been using the ESB Toolkit pretty extensively recently and came across an issue with the itinerary not being deployed to the database. The error occurred when I ran the business process and the receive location searched for the itinerary in the database. The error I was getting is the following:

Error 135008: The itinerary was not found in the repository.

The problem was that when I exported the itinerary to the database using the "Export Model" option in Visual Studio, I would get the message:

The exported Itinerary already exist in the database and the 'Status' is set to 'Deployed'. Do you want to overwrite the existing itinerary?

Since I did not make any changes, I selected "No". The problem was that the itinerary status was in fact not set to "Deployed" - verified by looking at the field in the database. To fix, I exported my itinerary again and selected "Yes". Now, when I make changes I export twice - just to make sure.

Tuesday, July 14, 2009

ESB Error: UDDI.aspx page throws error

If you open the UDDI page on the ESB Portal you get the following error:

An unexpected error occurred retrieving the category, 'microsoft-com:esb:runtimeresolution:biztalkapplication', from the system. ---> The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'NTLM'. ---> The remote server returned an error: (401) Unauthorized.

To fix this error, open system32\inetsrv\applicationHost.config (you may want to make a copy first), and go down to the UDDI web site tags. Change the windowsauthentication value and add "Negotiate" as a provider. Example follows:

Change
<location path="Default Web Site/uddi">
<system.webserver>
...
<security>
<windowsauthentication enabled="true"/>
...

to

<location path="Default Web Site/uddi">
<system.webserver>
...
<security>
<authentication>
<windowsauthentication enabled="true">
<providers>
<add value="Negotiate">
</add>
</providers>
</windowsauthentication>...

Restart IIS and it works.

ESB Error: Microsoft.Practices.ESB.UDDIPublisher.exe

When running the Microsoft.Practices.ESB.UDDIPublisher.exe in the bin folder (called the UDDI Publisher Utility in the documentation), you get the following error:

The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'NTLM,Basic realm="localhost"'

To fix this problem open Microsoft.Practices.ESB.UDDIPublisher.exe.config in the bin folder and change the credentialType tag from "Windows" to "Ntlm".

Friday, July 10, 2009

ESB Error: The remote server returned an error: (401) Unauthorized

Error: On ESB.Portal/Default.aspx page.


The remote server returned an error: (401) Unauthorized.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Net.WebException: The remote server returned an error: (401) Unauthorized.

Source Error:

Line 287: {

Line 288: client = PortalHelper.GetExceptionService();

Line 289: List settings = client.GetUserSettings(context.User.Identity.Name);

Line 290:

Line 291: context.Session.Clear();


Source File: c:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.0\ESBSource\Source\Samples\Management Portal\ESB.Portal\Code\PortalHelper.cs Line: 289

Stack Trace:

[WebException: The remote server returned an error: (401) Unauthorized.]

System.Net.HttpWebRequest.GetResponse() +1126

System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +81

[MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'NTLM'.]


Fix:

Change the security in the ESB.Portal web.config.

In the web.config change the security mode for the webBam webHttpBinding to match the correct security for your portal. For more information review: http://msdn.microsoft.com/en-us/library/ms731362.aspx.

To get mine to work I changed:

<webHttpBinding>

<binding name="webBam" maxBufferPoolSize="5000000" maxReceivedMessageSize="5000000">

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />

<security mode="TransportCredentialOnly">

<transport clientCredentialType="Windows" />

security>

binding>

webHttpBinding>

To:

<webHttpBinding>

<binding name="webBam" maxBufferPoolSize="5000000" maxReceivedMessageSize="5000000">

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />

<security mode="TransportCredentialOnly">

<transport clientCredentialType="Ntlm" />

security>

binding>

webHttpBinding>



ESB Error: Application. Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts th

Server Error in '/ESB.Exceptions.Service'

Application. Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.

Fix:
Open the web service web.config file (for exmple: C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.0\ESBSource\Source\Samples\Management Portal\ESB.Exceptions.Service\ESB.Exceptions.Service)

Change the security mode to the following:

<security mode="TransportCredentialOnly">

<transport clientCredentialType="Ntlm" />

security>