Trying to find the URI location on server - biztalk

I am new to BizTalk and tying to figure out where can I find the URI location of a server.
As you see below, the URI is SQL://CORDINASQL/FinanceApp
Where can I find it and how?

SQL://CORDINASQL/FinanceApp.. is the URI.
In this case it is a SQL Server URI where the SQL Server name is CORDINASQL and the Database is FinanceApp...
You can find the details by clicking on the Configure button and then on the ... next to Connection String.
P.S. If you are considering making changes to this port you might consider using the WCF-SQL adapter rather than this deprecated SQL adapter.
UPDATE:
CORDINASQL is an alias for the SQL server.
Check the file c:\Windows\System32\drivers\etc\hosts and see if they have put an entry in there for CORDINASQL to point to a IP address. Either that or your network team has done something in the your network so that name resolves to the correct IP address

Related

How to configure ngrok for SQL Server access

I would like to test a website in development hosted in a remote location against a sql server instance on my local machine. I was thinking I could run ngrok locally and update the connection string on the remote website appropriately, but I'm not sure what parameters I need to specify.
I've tried ngrok tcp 12345 and ngrok http 12345
In SQL Server Configuration Manager I've enabled TCP/IP for the SQL Express instance I want to use and set the port to listen on to 12345 (actually, a different number, but we'll say 12345 for the sake of this post). And I then restarted SQL Server.
I don't believe it's necessary for me to make holes in the firewall, but just in case I've temporarily disabled it entirely while I test this.
To test locally, I am taking the url ngrok provides and putting it in the connection dialog in SQL Management Studio, but I can't get it to connect.
What am I missing?
Set up Ngrok
Run ngrok on tcp on the SQL port (by default is 1433)
ngrok tcp 1433
You will get an url like tcp://3.tcp.ngrok.io:12345
In the "Connect to Server Dialog" type:
Server name: 3.tcp.ngrok.io,12345 Notice the comma between the port and the url. Type the url without tcp://
Login: your regular user, in my case sa and your password
Connect
The "URL" that ngrok generates for a TCP tunnel probably shouldn't be used unmodified. The tcp:// scheme part isn't a URI scheme in common use I don't think. Only the hostname and port part of the generated ngrok "URL" would be useful in a SQL Server connection configuration.
Not being intimately familiar with the referenced connection dialog in SQL Management Studio, it's hard to say exactly what input is expected, but maybe stripping out the tcp:// scheme will do the trick?

Host Name is sometimes empty

In one of my applications (ASP.NET/VB.NET), I need to read the Client Machine Name. Based on the Client Machine we trigger a Point of Sale payment device to accept the payment. On each of these systems we have a stand alone software installed which communicates to the bank using HTTP requests. I am using the following .NET code to read the Client Computer Name.
Dim name As String = String.Empty
Dim hostEntry = Dns.GetHostEntry(HttpContext.Current.Request.UserHostAddress)
If hostEntry.HostName.Contains(".") Then
name = hostEntry.HostName.Substring(0, hostEntry.HostName.IndexOf("."))
Else
name = hostEntry.HostName.Trim
End If
In the development environment, all our systems are in a domain ("xyz.com") and we don't have any issues. In the customer location they don't have a domain name setup. My above logic works well in some of the systems in the client environment and is able to make payments but in most of the systems our logic fails and is not able to read the host name. Any help will be appreciated.
Your question doesn't have the specifics required to answer your question. There are many questions that need to be answered about both environments to give a correct answer. Since I can't ask questions, I will make some assumptions which might apply to future readers of this post and be able to help them out.
I would ask a question but my profile was forked for some unknown reason and I don't have the required reputation to ask a question. That being said I will run through the list of issues I can identify off the bat and suggest solutions for the issue and hopefully one will lead you to a solution.
So...
1) You state you need to read the client machine name. However, if your application isn't running on an internal LAN (aka an intranet) you can't read client machine names period. So this could be your first problem.
2) Combining point 1 and given that you are reading the IP Address from UserHostAddress of the client to look up a DNS host name and when the host look up succeeds you are taking the first part of the name up until the first "." it should be safe to assume that this an intranet application running on a LAN in both your development environment and at the client environment. With that assumption and given the statement that all machines are given an domain of xyz.com it can be assumed that DNS in your development environment is being dynamically updated from presumably through Active Directory (AD). In such case, whenever a client machine on development network requests an IP address, presumably through AD, the DHCP server integrated with AD issues the new IP Address. When it does and the DHCP offer is acknowledged and accepted by the client AD updates DNS (which on a windows network is also AD integrated) by adding a host entry with the computer name of the client machine pointing to the IP Address. Additionally a DNS pointer, depending on configuration, can be added to AD's DNS which allows an IP Address lookup to resolve to the record (which in this case would be the Client's machine name). So with your development environment (presumably running on Windows Active Directory Domain) everything works. Addi tonally, by default the top level domain name (XYZ.COM) gets appended to the clients computer name in initial DNS requests from the client.
3) Your client is not running a domain which leaves further questions. Are they running windows? If they are running windows is it as a non-Ad environment, for example a work group. First assumption would be they are not AD integrated or otherwise you most likely wouldn't be having this problem although I can think of a few rare case scenarios where they might. However, odds are the relevant questions are What DNS server are they running and what DHCP sever are they running? Your application is trying to use a client IP Address on their network and the host name lookup based on their IP is failing so it tells me in their environment for one reason or another you can't get a host name from the IP Address of the client. Mind you if they could be on AD and configured entirely correctly their DNS server is just overwhelmed and not responding within 2 seconds causing the name lookup failure but that is the rate case. With more information I could help more.
3) Assuming in 2 that they are not on AD, do you have the ability manually code host names on the computer your application is running? For example, lets say yourapp.exe runs client-server-01 and clients connect to it. Then on client-server-01 you could add static DNS entries in the host file for each PC on the client network that you expect to connect. On the other hand if your application is running locally on the client PCs you could pass the machine name as a header in the web request and then read it from the Request.Headers variable on the server.
4) Again, making another assumption the clients are web based and your application in the client environment is being hosted on the server... Is the server on a DMZ outside the client environment? If so the client environment may likely be configured, per best practices, that the server host your web app is in a DMZ and DNS requests to the box are forwarded to the client's ISP and not back into their network that has the DNS server capable of resolving an internal IP to a client machine name. If this is the case you need to send the client machine name as a variable from your client or code local IPs to host names in the servers host file (assuming the internal network isn't behind NAT and exposes the real client machine's IP) or request that the DMZ'd server can access the internal DNS and configure the access accordingly.
....
The list really goes on and on but I think I highlighted the problems for 99% of the situations and provided answers to their various solutions.
You can try to take it from X-Forwarded-For header
The X-Forwarded-For (XFF) HTTP header field is a common method for
identifying the originating IP address of a client connecting to a web
server through an HTTP proxy or load balancer.
This is what X-Forwarded-For should return:
X-Forwarded-For: client, proxy1, proxy2
Here some example code:
string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ;
if (!string.IsNullOrEmpty(ip))
{
string[] ipRange = ip.Split(',');
ip = ipRange[0];
}
else
{
ip = Request.ServerVariables["REMOTE_ADDR"];
}
There was an issue with Firewall setup on the client machine.Due to that our .NET code was failing. After adding an exception to all the incoming requests from xyz.com. My code is working without any issues.
Thank you guys #Alexander Higgins, #halfer for the help.

Unable to resolve CRM web application url with hostname from outside browsers

I have a deployment created with crm 2016 on-premise.
After installation. I am unable to use the webapplication URL from browsers outside the server.
If I use FQDN NAME-IT IS GETTING RESOLVING and able to access org. Eg:
http://testserver.testserverdom.com/Englishorg
If I use hostname url-it is not resolving and getting blank page. Eg:
http://testserver/EnglishOrg
Again if I add host entry in drivers/etc/hosts file in the outside machine like 10.10.10.10 testserver. Able to resolve and access URL.
I have added hostname(A) entry in DNS. I am still unable to resolve it with hostname.
Server have DHCP Assigned IP Address.
I believe you might be having the DNS issue on client - side (outside of you server) which cannot correctly resolve your testserver.
If you run cmd and there try nslookup testserver- you should see if this is resolved with the correct ip address (according you your hosts file change this should be 10.10.10.10). If this does not -- I believe the problem is in DNS query / response, please make sure your local DNS server is configured correctly and make sure your local DNS server is sending back the response to your client.

Dynamic (database) IP Blocking with SQL on IIS 7.5

I am using IIS7.5 URL rewrite module to look up redirect and rewrites in the SQL database attached to my website - and am now trying to use the same system to look up a list of IP address I wish to block (return 403).
I have a table of IPs (in SQL server) which is continually updated (outside of the remit of this question) and I want IIS to pass the IP address of the current request to a stored procedure which will then return a Pass/Fail on whether to allow the request to continue or return a HTTP 403.
I don't seem to be able to work out how to configure this in IIS.
Many thanks

I can ping a database, should I be able to connect with the correct credentials?

I am able to ping a database server from my machine but am having a hard time connecting. Should I be able to connect or could there be other network features that are getting in the way?
I am trying to connect with Oracle SQL developer to an Oracle 11g R2 database.
Here are the instructions to connect to database using sql developer
Know the port number on which database is listening (by default 1521)
Make sure you can telnet to the host and the port number
There are several ways, you can connect (BASIC, TNS, Advanced etc)
For Basic, you need to give host ip or resolvable name, port and sid or service name as part of the connect string. Similarly for JDBC you need to give valid JDBC url and also you are supposed to ojdbc jar file in the appropriate location of sql developer.

Resources