Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/livetr/public_html/feednews/rss.php on line 100
 MSDN Blogs | Reading Feed
Feed: MSDN Blogs

F# 9월 CTP!

Date: 30 August 2008 - 07:23

Don Syme's WebLog on F# and Other Research Projects : The F# September 2008 CTP is now available!

F#, 이제는 Visual Studio 2008에서 사용할 수 있습니다. F# 프로젝트를 만들 수 있을 뿐만 아니라 간단한 인텔리센스와 툴팁들을 만나실 수 있습니다. Visual Studio 2008이 없다면, Visual Studio Shell로

이외의 달라진 점들은 여기서~

An introduction to Units of Measure by Andrew Kennedy

Date: 30 August 2008 - 07:17

Andrew Kennedy has published the first part of a tutorial introduction to Units of Measure in F#.

Do you remember NASA's Mars Climate Orbiter? It was lost in September 1999 because of a confusion between metric and so-called "English" units of measurement. The report into the disaster made many recommendations. In all likelihood, the accident could have been prevented if the NASA engineers had been able to annotate their program code with units, and then employed static analysis tools or language-level type-checking to detect and fix any unit errors.

Of course, the languages that NASA used had no language or tool support for units. Many people have suggested ways of extending programming languages with support for static checking of units-of-measure. It's even possible to abuse the rich type systems of existing languages such as C++ and Haskell to achieve it, but at some cost in usability. More recently, Sun's Fortress programming language has included type system support for dimensions and units. It also happens to have been the subject of my PhD thesis from a few years ago. So it's particularly exciting for me that a feature which I studied in theory in 1995 will now get used in practice in F#.

As recently announced in the September 2008 F# CTP (Community Technical Preview), the F# programming language now has full support for static checking and inference of units-of-measure. In this series of articles I'll gently introduce the feature. (If you're not familiar with F#, look here.) We've already been testing out the units-of-measure feature inside Microsoft and I'm amazed at the diversity of applications that are turning up. Of course, there are the obvious applications to scientific computing, and games (which are all about physics, after all), but we're seeing applications in machine learning, finance, search (think click rates, etc) and others.

....

More on Andrew's blog..

IE8 Beta 2 is Out, Get It

Date: 30 August 2008 - 06:42

From here.

Microsoft Web Platform

Date: 30 August 2008 - 06:19

Eccoci, vacanze finite e per tornare, mostro la visione aggiornate della nostra piattaforma Web che si compone:

  • Tools: Visual Studio che conoscete, Expression che è la suite per realizzare la parte grafica dei web site e pc client con target i designer
  • Tecnologie: le ben note ASP, Silverlight (alla sua versione 2), Ajax
  • Infrastruttura: Windows server 2008, IIS 7 e SQL Server 2008
  • Servizi: senza dubbio la parte più innovativa e dove stiamo investendo molto. Si parla quindi di Live! Platform e Microsoft Advertising
  • Client: Web, PC e Mobile

WebPlatform

Models, Views, and Controllers

Date: 30 August 2008 - 06:17

A good video on Understanding Models, Views, and Controllers.

http://www.asp.net/learn/mvc-videos/video-396.aspx

http://www.asp.net/learn/mvc/tutorial-02-cs.aspx

Internet Explorer デベロッパーセンター、リニュアール公開!

Date: 30 August 2008 - 05:43
すでにご存じの方も多いかもしれませんが、8/28 に IE8 ベータ 2 のダウンロード提供 を開始しました。 このダウンロード開始に合わせて、 Internet Explorer デベロッパー センター をリニュアールし、新プラットフォームにオープンしました。 開発者の皆様より、IE8 の日本語情報が少ないというフィードバックをいただいておりましたが、 ホワイトペーパー (Beta1 対応) はもちろん、 Internet Explorer 8 サイト適応ガイド 、など、IE 8 関連の情報を拡充しております。 トップページの "ハイライト" で最新ニュースを RSS 配信もしておりますので、ぜひ、ご利用ください! IE 関連の最新情報は、米国の IE チームのブログ にてアナウンスされることが多いため、IE 8 関連をピックアップして、この度、 日本語翻訳版 も公開しております。  現在、MSDN ライブラリの情報も日本語に翻訳中ですので、IE の情報をお探しの開発者の皆様、Internet Explorer デベロッパーセンター、今後も要チェックですよ!...(read more)

Windows Server 2008 に SharePoint Server 2007 をインストールする際の注意点

Date: 30 August 2008 - 05:24
デモ環境を作っていて思ったのですが、 WIndows Server 2008 の環境に SharePoint Server 2007 をそのまま、インストールしてもエラーが出てインストールできません。 これは、初期版の SharePoint Server が Windows Server 2008 に対応していないためです。 なので、インストールメディアの Updates フォルダ(更新プログラムを放り込むフォルダですね。)に SP1 を適用してから、インストールする必要があるとのことです。 また、テスト環境での確認であれば、MSDN サブスクリプションから、SP1 適用済みのメディアがダウンロードできますので、それを利用してもインストールすることはできます。 情報が公開されていても分かりづらいようなので、この場でご紹介させていただきました。 正式な情報は以下です。 Windows Server 2008 で Office SharePoint Server 2007 のスタンドアロン インストールを実行する http://technet.microsoft.com/ja-jp/library/cc262177.asp...(read more)

VBA と VSTO の相互運用について(VSTO から VBA の呼び出し)

Date: 30 August 2008 - 05:06
前回( VBA と VSTO の相互運用について(VBA からの VSTO ソリューションの呼び出し) )は VBA・VSTO を呼び出すことをお話いたしました。 今回は前回の続きになりますが、VSTO 側から VBA・マクロを呼び出す方法になります。 Word 文書ではVBA・マクロを呼び出すことができ、Excel ブックではVBA・ マクロと関数を呼び出すことができます。これらを呼び出すには、次のいずれかのメソッドを使用します。 Word では、 Microsoft.Office.Interop.Word の Application クラスの Run メソッドを呼び出します。 Excel では、 Microsoft.Office.Interop.Excel の Application クラスの Run メソッドを呼び出します。 前回の公開したソリューションを元に作業を進めてみたいと思います。 手順: 1. まずは、VBAtoVSTO ソリューションを起動します。 2. Sheet1. のプロパティで "ReferenceAssemblyFromVbaProject"...(read more)

Fox Business - alternatives to the iPhone

Date: 30 August 2008 - 04:09

With all the hype around iPhone it's nice to see Fox in the USA cover a story about the alternatives to the iPhone which use Windows Mobile.

Scott Rockfeld my colleague from the US does a great job highlighting some of the latest great devices using Windows Mobile software.

Utilisation excessive du processeur par MonitoringHost.exe

Date: 30 August 2008 - 04:05

Sans vouloir remonter à la source de la chaîne de message, Jean-Pierre MOUILLET m'a signalé un problème rencontré sur certains de ses serveurs équipés de l'agent Operations Manager : leur compteur d'utilisation du processeur passe régulièrement à 100% sur le process MonitoringHost.exe.

La faute en incomberait à la présence du fichier oemlogo.bmp dans %SystemRoot%\System32.

L'explication vient de la requête WMI "select * from Win32_ComputerSystem" qui charge cette image dont la taille peu être conséquente par rapport à une utilisation habituelle de WMI.

Pour résoudre le problème, il suffit de renommer ce fichier ou de le supprimer. Pour mémoire ce fichier est celui qui apparaît lors vous demandez les propriétés de votre ordinateur.

Conformance macros in VC STL

Date: 30 August 2008 - 04:01

In VC STL, there are two macros called "_HAS_IMMUTABLE_SETS" and "_HAS_STRICT_CONFORMANCE" which are defined in yvals.h. They are related to some defects in the C++ standard 2003.

1. _HAS_IMMUTABLE_SETS will influence the constness of set::iterator.

Associative containers require its elements to be sorted, so modify them will be dangerous. But the standard doesn't prohibit the programmer to do that.

In C++0x, the following statement is added for associative containter:
For associative containers where the value type is the same as the key type, both iterator and const_iterator are constant iterators
(In the standard, it is said:
Constant iterators do not satisfy the requirements for output iterators, and the result of the expression *i (for constant iterator i) cannot be used in an expression where an lvalue is required.)
That means you cannot modify the value of the elements using iterator any more.

Discussion: http://www.cpptalk.net/image-vp135370.html

2. _HAS_STRICT_CONFORMANCE will influence two places:

a. For set, multiset, map and multimap

void erase(const_iterator position);
size_type erase(const key_type& x);
void erase(const_iterator first, const_iterator last);

->

iterator erase(const_iterator position);
size_type erase(const key_type& x);
iterator erase(const_iterator first, const_iterator last);

In C++03, erase in associative containers will not return the iterator, which is incompatible with sequence containers. It is fixed in C++0x
VC's extension provides the return value for erase. _HAS_STRICT_CONFORMANCE will disable this extension.

Discussion: http://www.tech-archive.net/Archive/VC/microsoft.public.vc.stl/2005-10/msg00030.html
Further Discussion: http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#103

b. For codecvt::do_length(stateT& state, const externT* from, const externT* from_end, size_t max) const;

In C++03, codecvt<wchar_t, char, mbstate_t> and codecvt<char, char, mbstate_t> should return the lesser of max and (from_end-from).
This is weakened in C++0x. Only codecvt<char, char, mbstate_t> is required to behave like that.

BTW: VC's STL implentation is provided by Dinkumware. You can see "P.J. Plauger" at the end of each STL file.

Använda gärna "Rating"-systemet!

Date: 30 August 2008 - 03:38

Noterade att när jag publicerade mitt förra inlägg så öppnades ett IE8 fönster (för förhandsgranskning) och då märkte jag till mitt stora möje (och missnöje) att någon valt att bedömma inlägget om "Varför ska jag prova XNA?". Det tycker jag är superbra av den personen, trots att "ratingen" är väldigt låg. Men det hjälper mig ytterligare att förstå vad som är intressant att skriva om och på vilken nivå jag ska ligga.

Hjälp mig hjälpa dig, bedöm inläggen!

Hur gör man? Du behöver gå till respektive artikel/inlägg och där hittar du ett antal stjärnor som du helt enkelt klickar på: 1 är uselt, 5 är kanonbra!

Supprimer le panneau des actions de System Center Configuration Manager 2007

Date: 30 August 2008 - 03:34

Le panneau des action ("Actions pane" en anglais) est très pratique pour débuter dans l'utilisation d'un produit utilisant la console MMC version 3.0, mais finit pas lasser tant elle ralentit son utilisation. De plus, dans SCCM, elle peut conduire à de graves erreurs comme l'installation de l'agent sur tous les systèmes au lieu d'un seul ordinateur.

La clé "SuppressActionsPane" permet de la faire disparaître définitivement. Pour l'utiliser dans la console d'administration de SCCM, il faut rajouter cette clé de type DWORD à la valeur de "1" dans :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\FX:{6de537a5-7a1c-4fa4-ac3a-1b6fc1036560}

Lite mer C++ kanske?

Date: 30 August 2008 - 03:30

När jag har varit ute och träffat kunder, partners och utvecklare i allmänhet så har jag under de senaste åren spenderat absolut största tiden fokuserat på .NET Framework och då speciellt med C# som programmeringsspråk. Egentligen är jag en C++ programmerare vill jag nog påstå efter alla kurser på högskolan och en del sidoprojekt som dock mest rört spelprogrammering. Därför har jag nu fått möjligheten att fokusera lite extra mycket på det som intresserar och motiverar dig som C++ programmerare. Området är så klart oerhört stort och jag vill gärna lägga min tid på rätt saker för att kunna hjälpa dig på rätt sätt och med rätt resurser så därför vill jag gärna veta lite vilka typer av projekt som just du sitter i där C++ har varit rätt val och vilka potentiella utmaningar som ni står inför.

Med andra ord, jag vill veta mer om "verkligheten" för en C++ programmerare idag och om det finns ett intresse för en ökad kommunikation av resurser, artiklar, inlägg och filmer för just dig.

Hör av dig!

Professional Software Developer - Intro

Date: 30 August 2008 - 03:28
It's a journey to even begin to learn what it takes to become a real professional software developer. From the first day when I get to use the computer, starting to get fascinated with the things to do and another world opened to me, I think that it must be cool to do this for life.u Same as anything you do, when you think you are good, you just want to get better. During the high school days, I'm basically just learning random things about programming, some tips and cool snippets to use in web pages...(read more)

The Dichotomy of Selfhosting

Date: 30 August 2008 - 03:20

I love working at Microsoft and I especially love getting to work on the operating system. One of the the things I love about working on the OS is that I get to run the operating system as soon as it's built. If there's a new feature, I can have it on my laptop the day it's in the official build (and if I'm really interested in something in particular, even before it's in an official build). I also get to see the evolution of certain features. Something that looked great in a controlled environment with just a couple users might not work as well when it's spread across a division or two2, in those cases (and for many other reasons) you get to see a feature evolve; sometimes minutely, sometimes drastically. You get to see a creation that you have a part in grow up.

There is a downside however. Right now I'm running a recent build and while there are a lot of similarities to Vista, it's not Vista. The OS reports its version differently, the browser is a different version, and other changes that affect my computing experience are close, but not exactly like Vista. Imagine having a key to your car that is close, but not exactly shaped like the key that is meant for your car. There are web sites that just won't work properly and it's often not that they wouldn't work, but the developers were careful and made sure that if they didn't recognize the platform and browser then you were redirected to a polite page that told you that your configuration was not supported. Internally we often have "hacks" to get around such issues so we can test against these sites. application compatibility is key to our success, but it's like that key that doesn't quite fit right; if you jiggle it around for a bit you can usually get it to work, but it's a pain that you have to jiggle it.

The other downside is when I'm trying to help someone that is running "the latest software from Microsoft", usually my parents or siblings. These usually involve talking the relative through something over the phone and I often "follow along" as much as possible on my computer. But now things don't quite match. Microsoft spends a lot of time trying to make things simpler and more straight-forward for users2 and this is goodness, but it also means that my "cheat sheet" (following along on my computer) no longer matches and I get to listen to complicated dialogs being read out a bit at a time while I'm trying to help solve some problem. A while ago I actually got my dad, mom, and sister computers that were identical to my home machine so that I could handle these situations more easily. Now if I could only convince my family to only have computer problems when I'm at home rather than at work!

Overall, the upsides of selfhosting far outweigh the downsides. It can be a bit frustrating now and again, especially when I want to try out the new cool thing "RIGHT NOW!" (today's RN! was Microsoft Live Lab's Photosynth)...but I'd rather be selfhosting than not have the opportunity to do so.

1I also find it interesting why it didn't work when we go to larger scale...quite often it's not that the feature works all that differently for a bunch of users, it's that there are groups of users that use their machines differently or have different hardware or work remotely, etc.
2yes, you can probably provide the counter-example that bugged you, but take a second and think about the last time you needed to enter an IP-mask while setting up a netcard...and I could list many more examples where we have gotten it right

Kinoma Play

Date: 30 August 2008 - 03:18

If you haven't had a chance to try Kinoma Play yet I'd really encourage you to do so! It's a Media player/browser that gives you access not only to all the content on your phone but also to online services such as YouTube, Live365, Flickr, Orb and many others!
WMExperts have written an excellent review and also pulled together the video above!
Kinoma Play is free to try and $29.99 to buy!

Version d'évaluation de System Center Configuration Manager 2007 R2

Date: 30 August 2008 - 03:17

La version d'évaluation anglaise, valable pendant 180 jours, de System Center Configuration Manager 2007 R2 est disponible sur :
http://www.microsoft.com/downloads/details.aspx?FamilyID=7376214f-cba3-4e0d-81fe-ad52488be3a3&DisplayLang=en

Au passage, je note que le numéro de "build" de cette édition est, donc, 6355.

Pour utiliser cette édition R2, il est nécessaire d'avoir déjà installé une version intégrant le service pack 1 comme celle disponible sur :
http://www.microsoft.com/downloads/details.aspx?FamilyID=06d54615-8f0a-49ab-b195-5cd4fd76abdf&DisplayLang=en

Sans l'avoir testée, je suppose que la procédure de régularisation en version licenciée de cette version d'évaluation passera par l'installation d'une version définitive par dessus la version d'évaluation.

The Unicode web site gets a facelift

Date: 30 August 2008 - 03:01

Yes, that is right -- press release info along the lines of:

The Unicode Consortium is redesigning its home page to be more accessible to both new and frequent visitors, and to make it easier to see recent events and public review items. Please try it out and provide any feedback on the new design on the public mailing list: unicode@unicode.org. All links previously on the home page are still accessible through a menu on the left, and the older home page remains accessible for those who prefer it.

New home page:  http://www.unicode.org/

Older home page:        http://www.unicode.org/index-classic.html

A nice facelift for people who spend time on that site.

I kind of like the new page:


It definitely feels less cluttered to me than the old page:


Which is nice.

And knowing all of the same info is there and especially that the old page is not being dumped with no notice are two other great pieces of information....

Note that there is no equivalent or analogous update here, I am way too set in my ways to be authoring that kind of change. :-)

Enjoy!

 

All of the characters in Unicode are on their way spmewhere for a vacation; they will be either pleased or disturbed to find out that their home has been renovated, once they are back in town!

NetWiz - How to Download the Tool (finally!)

Date: 30 August 2008 - 02:32

I just updated this blog post. Now you can download NetWiz.

Photoshop World – Las Vegas

Date: 30 August 2008 - 01:37
by Jeff Greene /   Photoshop World September 4-6, 2008 Mandalay Bay Resort & Casino Las Vegas, NV   It’s that time of year again when Scott Kelby and the Photoshop Dream Team beam down from their places on high and dispense priceless nuggets of Photoshop gold to us clamoring hordes of mere pixel-pushing mortals….   Once again the West Coast event will be held in Las Vegas at the Mandalay Bay Convention Center. In addition to four full days of instruction, Tech Expo, and the evening...(read more)

TransmitFile takes long time to send data

Date: 30 August 2008 - 01:13

How long? haf day or maybe one day. You may encounter the symptom when calling TransmitFile to send a file from one socket to another socket.  There are many possible reasons may make TransmitFile hang, before you capture kernel dump, update NIC driver, close firewall, remove 3rd party LSP, remove network filter driver, you might want to check one simple setting in the first place:

1. Open device manager

2. Expand the tree and go to NIC node

3. Open "properties" of the NIC device

4. Find "Speed and Duplex" settings in "advance" tab, check whether it is "auto". If not, change it back to auto

5. Test your program again

 

New Content Available: AI Flocking, Shadow Mapping, and Multipass Lighting Shaders!

Date: 30 August 2008 - 12:51

The XNA Team announces a new set of educational content for XNA Game Studio:

Download this content from the Education Catalog, or discuss this content in the Forums.

[DSL Tools] Reference relationships and compartment shapes

Date: 30 August 2008 - 12:33

Presentation of the problem:

Deleting behaviour with compartments representing embeddings

Most of the time, in the DSL Tools, you map compartments in compartment shapes to embedding relationships.

And then, deleting a compartment item in the compartment shape indeed removes the model element which was displayed as this compartment item, which makes sense.

 

Deleting behaviour with compartments representing reference relationships

Now let's suppose you have are mapping a compartment not to an embedding, but to a reference relationship. You might think that deleting a compartment item will only delete the link between the instance represented by the compartment shape and the instance represented by the compartment item. But it turns out that it also deletes the instance represented by the compartment item.

There are scenarios, where you would like first behaviour. This posts explains why it is so, and how to proceed to have only the link deleted, not the target model element.

 

 

A case study: what it does, and what we would want

The domain model

  • we have 2 domain classes ClassA and ClassB, linked thru a Reference relationship (many-many) named ClassAReferencesClassB
  • ClassB is represented as a geometric shape ClassBShape
  • ClassB is represented by a compartment shape ClassAShape, which displays the ClassBs referenced by the instance of ClassA through ClassAReferencesClassB
  • the same ClassAReferencesClassB is also represented by a connector, so that we really see what is happening there.

image

Figure 1: the domain model (please, click the image to enlarge)

 

Opening the DSL Details tool window, and clicking on the mapping line between ClassA and ClassAShape, in the Compartment Maps tab, we use the path editor as we usually do and end-up with the following, which really means that in the Bs compartment, we are:

  • requesting to represent ClassB instances, which we get though the ClassAReferencesClassB relationship navigating though the ClassB role (Displayed elements collection path)
  • Then we want to display the Name of each ClassB (Display property).

image

Figure 2: The mapping between ClassA and the compartment shape representing it.

 

Running our designer - what it does

After transforming all templates, and running the editor, you create a ClassA , a ClassB , and connect them through the connector, in order to get this (the ClassB1 instance also appears in the compartment, since the relationship is mapped both to the compartment and the connector)

image 

Figure 3: Running our designer - starting point

 

Now, let's try to delete ClassB1 from the compartment (Using the Del key or the contextual Delete command). You end-up with this:

  • the ClassB1 represented instance was deleted (after all the Delete command was targeting it), removing the link, of course
  • consequently the ClassB1 shape was deleted

image

Figure 3: Running our designer  - what Delete does on the compartment item

 

 

Running our designer - What we would like

That said. You were maybe expecting that, considering you were using a Reference relationship and not an embedding, you would end-up with only deleting the link between ClassA1 and ClassB1 and not the ClassB1 instance. It turns out that this scenario is of interest, but this is not what you requested. You really sent the Delete command to the ClassB1 instance, hence the result.

 

 

How to get what we want

In fact, to tell you the truth, I thought myself this behaviour was a bug :-), until Stuart explained me about the command being directed to the ClassBs instances and not to the link. Then, you can very easily achieve our desired behaviour specifying the right things in the DSL Details window on the shape map (and not writing any custom code)

Here is how we should proceed.

  1. Still in the Compartment Maps tab of our mapping between ClassA and ClassAShape, we need to express that we want to deal not with ClassB instances but with a collection of ClassAReferencesClassBlinks form the instance of ClassA represented by the compartment shape to the related ClassB instances.

    The Displayed elements collection path should, therefore be ClassAReferencesClassB.ClassB
    This can be understood as the same code construct as ClassAReferencesClassB.GetLinksToClassB(ClassA1) which returns collection of ClassAReferencesClassB. This is really an instance of the link that will be presented as a compartment item, and thus, deleting it will delete the link, not the targeted ClassB.
  2. Now, we need to specify what to display (namely the Name property of the ClassB instance accessed through the link). For that, given an instance of ClassAReferencesClassB, we need to get an instance of ClassB (just in order to access its property). We express this in the Path to display property field as ClassAReferencesClassB!ClassB which means getting the ClassB property of the ClassAReferencesClassB instance, that is getting a ClassB instance.
  3. The last step is to provide the Display property, here Name

image

Figure 4: how to express we want to deal with links

 

Running our designer - We get what we want

After transforming all templates, and running the designer the first thing is you get exactly the same appearance as before (even if now the compartment items represent links and not model element instances). This is no surprise because we did all we could for that, but it's work noting it

image 

Figure 5: Running our new designer - apparently this is like before

 

But this, time, deleting the ClassB1 compartment item, we end up with the following expected result:

image

Figure 6: Running our new designer - the delete command now delete the link, not the targeted shape

 

Conclusion

In this post, we learnt why, when mapping a compartment to a reference relationship, deleting compartment items deletes the targeted model element with the usual mapping, and how to change the mapping so that it only deletes the link.

To get more information about the path syntax, you can review Overview of Domain Path Syntax . When I started with the DSL tools, I also found this post by Alan very useful.

Troubleshooting TS Gateway connectivity on Windows 2008, IIS 7.0

Date: 30 August 2008 - 12:27

Here is something which is not my domain but had to learn the hard way. I recently encountered an issue while enabling Terminal Services Gateway (TSG) on Windows 2008 server. TSG is coupled with IIS 7.0 hosted on Windows 2k8 server and that's how I came into picture. TSG in simple terms is a feature using which one can connect remotely to an internal network over secure HTTPS port 443 from the Internet. Earlier Remote Desktop Protocol (RDP) connections used TCP port 3389. In many corporate environment this port may be blocked by the firewall. However now with TSG connecting on port 443 (common SSL port for http traffic) user should not get into the common issues of port being blocked. In my case we had the TSG installed as one of the roles on the server. The setup was fine.
The only concern was that we already were using the Default Web site for some application. It can also happen otherwise, you have the TSG setup on an IIS 7 web site and if you go ahead and install let's say Exchange on top of it under the same site it may break the TSG functionality.

When you install TSG, it creates two virtual directories called Rpc and RpcWithCert under the web site as shown below.

image

Under the hood it appears a call is made for

http://<server-name>:443/rpc/rpcproxy.dll?localhost:3388 when you try to connect through TSG. So yes IIS is very much involved here.

Now what can you do to fix this, perhaps you can install your web application (say Exchange) on some other web site and a different SSL port like 444 and have TSG site listening on port 443. Or else just the opposite.

In my case we went with the 2nd option since we didn't want Exchange to be reinstalled again.
But even if you use either of the above options it may not go that smoothly as it looks to be.

You may see the error as shown below when you try to use terminal service through TSG.

image Click on OK...

image

If you are seeing something like this, as a workaround create a new web site and copy the settings for the Virtual directories /Rpc and /RpcwithCert from the previous site to the the new web site. You can do this easily by copying the configuration in the applicationHost.config file.

Here are the steps:

1. Copy the following configuration (in the ApplicationHost.config file from C:\<Windows>\System32\inetsrv\config) from the previous site to the new site to add the virtual directories for your new web site.

<site name="<new-web-site>" id=...>
...
<application path="/Rpc" applicationPool="SomeAppPool">
       <virtualDirectory path="/" physicalPath="C:\Windows\System32\RpcProxy" />
</application>
<application path="/RpcWithCert" applicationPool="SomeAppPool">
        <virtualDirectory path="/" physicalPath="C:\Windows\System32\RpcProxy" />
</application> 
...
</site>

So this will create two virtual directories in your new web site called Rpc and RpcWithCert.

image

Add an SSL binding for the new Web site on port 443 as well. Ensure no other site is listening on port 443.

2. Copy the following for the previous web site in the ApplicationHost.config file to the new web site.

This is the section contained in the Location tag for the Virtual directories /Rpc and /RpcWithCert. You need to copy this section from the location tag for the <previous-web-site> and add it to the location tag for the <new-web-site>.

<location path="<previous-web-site>/Rpc">
        <system.webServer>
            <directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" />
            <handlers accessPolicy="Execute">
                <add name="RPCPROXY" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\system32\RpcProxy\RpcProxy.dll" requireAccess="Execute" />
            </handlers>
            <serverRuntime uploadReadAheadSize="0" />
            <defaultDocument enabled="true" />
            <modules>
                <add name="PasswordExpiryModule" />
            </modules>
            <security>
                <requestFiltering>
                    <requestLimits maxAllowedContentLength="2147483648" />
                </requestFiltering>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <basicAuthentication enabled="false" />
                    <windowsAuthentication enabled="true" useKernelMode="false" />
                </authentication>
                <access sslFlags="Ssl, Ssl128" />
            </security>
            <httpErrors>
                <remove statusCode="401" />
                <error statusCode="401" path="C:\Windows\system32\RpcProxy\Error401.txt" responseMode="File" />
            </httpErrors>
        </system.webServer>
    </location>
<location path="<previous-web-site>/RpcWithCert">
        <system.webServer>
            <directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" />
            <handlers accessPolicy="Execute">
                <add name="RPCPROXY" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\system32\RpcProxy\RpcProxy.dll" requireAccess="Execute" />
            </handlers>
            <defaultDocument enabled="true" />
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <basicAuthentication enabled="false" />
                    <clientCertificateMappingAuthentication enabled="true" />
                    <digestAuthentication enabled="false" />
                    <windowsAuthentication enabled="false" useKernelMode="false" />
                    <iisClientCertificateMappingAuthentication enabled="true" />
                </authentication>
                <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert, Ssl128" />
                <requestFiltering>
                    <requestLimits maxAllowedContentLength="2147483648" />
                </requestFiltering>
            </security>
            <serverRuntime uploadReadAheadSize="0" />
            <modules>
                <add name="PasswordExpiryModule" />
            </modules>
            <httpErrors>
                <remove statusCode="401" />
                <error statusCode="401" path="C:\Windows\system32\RpcProxy\Error401.txt" responseMode="File" />
            </httpErrors>
        </system.webServer>
    </location> 


3. Ensure that we replace <previous-web-site> with the <new-web-site> in the following tags above:

<location path="<previous-web-site>/RpcWithCert"> -----> <location path="<new-web-site>/RpcWithCert">

<location path="<previous-web-site>/Rpc">  -----> <location path="<new-web-site>/Rpc">

4. Run iisreset from the cmd prompt. Or it may also work with just restarting W3SVC service (net stop w3svc, net start w3svc).

Go ahead and test RDP over TSG from the client. If it still doesn't work you may have to try the 5th step as below.

5. Add the following registry entry. Run this from the cmd prompt:
> reg add HKLM\Software\Microsoft\RPC\RpcProxy /v Website /t REG_SZ /d  <new-web-site>

One last thing, ensure that the certificate issued to the TS server gateway is trusted on the client from where we are doing a terminal login.

Happy troubleshooting!

Cheers Martini Glass

Copyright © 2007 Emexci Network
livetr tracker